在django模型中按外键过滤

时间:2016-01-31 11:57:58

标签: python django django-models

假设我有以下模型:

class VKLink(models.Model):
    user_id = models.IntegerField()
    name = models.CharField(max_length=200)


class BaseComment(models.Model):
    owner = models.ForeignKey(VKLink)
    from_id = models.IntegerField(default=0)
    text = models.CharField(max_length=3000)

    def is_own(self):
        return self.from_id == self.owner.user_id

如果from_id等于链接user_id,则BaseComment被计为“自己的评论”。 我希望得到所有“自己”的BaseComments。 如何在django模型中选择它?

BaseComment.objects.filter(from_id=owner__user_id)不起作用,因为在此阶段未定义owner__user_id

1 个答案:

答案 0 :(得分:3)

您可以使用F() expression

BaseComment.objects.filter(from_id=F('owner__user_id'))