所以,我有一个简化到这个
的数据模型class Activity(models.Model):
start_date = models.DateField()
title = models.TextField()
...
class Outcome(models.Model):
title = models.TextField()
code = models.CharField(max_length=20)
...
class ActivityOutcome(models.Model):
note = models.TextField()
outcome = models.ManyToMany(Outcome)
activity = models.ManyToMany(Activity)
class Organisation(models.Model):
title = models.TextField()
outcomes = models.ManyToManyField(Outcome, related_name='outcome_organisation')
...
class Programme(models.Model
title = models.TextField()
outcomes = models.ManyToMAnyField(Outcome, related_name='outcome_programme')
...
我想拥有一个ActivityOutcome
类,因为它使处理起来更简单,但我需要有一些Programme
结果和一些Organisation
结果。如果我想要一个所有" Program"的QuerySet。结果,我该怎么做?
答案 0 :(得分:1)
您可以使用__isnull
过滤所有具有相关计划的结果。
outcomes = Outcome.objects.filter(outcome_programme__isnull=False)
如果多个程序可以获得相同的结果,您可能需要使用distinct()
来防止重复。
outcomes = Outcome.objects.filter(programme__isnull=False).distinct()