2

私は次のモデルを持っています:

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 hasTopicsreturns ) を持つすべての のリストを作成したいと考えていますtrue

私の知る限り、Django ではfilter式でインスタンス メソッドを使用することは不可能です (つまり、TopicLabel.objects.filter(TopicLabel.hasTopics).order_by('order')不可能なことのようなものです)。

そのようなクエリを実装する正しい(Djangoスタイルの)方法は何ですか(できればデータベースに依存しない)?

4

1 に答える 1