Extending two related queries on same model in Django -
consider django model forms connection between 2 other model instances:
class user(models.model): pass class meeting(models.model): user_a = models.foreignkey(user, related_name='a_meetings') user_b = models.foreignkey(user, related_name='b_meetings') now suppose want define function returns of users meetings, regardless of if side a or b. naive implementation be:
class user(models.model): @property def meetings(self): return list(self.a_meetings.all()) + list(self.b_meetings.all()) what's 'right' way have function return matching queryset instead of list? bonus points elegant solution doesn't use ugly q query ;)
i think qs inevitable here.
the main principle these things start model want get: since want meetings, start there.
return meeting.objects.filter(q(user_a=self) | q(user_b=self))
Comments
Post a Comment