私は次のモデルを持っています:
class TopicLabel(models.Model):
name = models.CharField(max_length=256)
order = models.IntegerField(null=True, blank=True)
def __unicode__(self):
return self.name
def hasTopics():
return TopicLabelConnection.objects.filter(labelId=self.id).count() > 0
class TopicLabelConnection(models.Model):
topicId = models.ForeignKey(Topic, related_name='connection_topic')
labelId = models.ForeignKey(TopicLabel, related_name='connection_label')
def __unicode__(self):
return self.labelId.name + ' / ' + self.topicId.title
TopicLabel
特定のビューで、少なくとも 1 つの接続 (つまり where hasTopics
returns ) を持つすべての のリストを作成したいと考えていますtrue
。
私の知る限り、Django ではfilter
式でインスタンス メソッドを使用することは不可能です (つまり、TopicLabel.objects.filter(TopicLabel.hasTopics).order_by('order')
不可能なことのようなものです)。
そのようなクエリを実装する正しい(Djangoスタイルの)方法は何ですか(できればデータベースに依存しない)?