通过ForeignKey过滤Django QuerySet

时间:2014-02-08 22:56:58

标签: python django

我想使用过滤器术语通过其外键获取记录集。但不知何故,这是行不通的。我在这里展示模特:

class MessageMonitoring(models.Model):
    MyID                   =  models.ForeignKey(AboutMe, null=True, blank=True, related_name='MessageMonitor')

class AboutMe(models.Model):
    MyGender                   = models.CharField(max_length=50, choices = GENDER_CHOICES)

在我看来,我想做以下事情:

recipient = AboutMe.objects.get(pk=toid)
monitor_recip =  MessageMonitoring.objects.filter(MessageMonitor_owner=recipient)

但是我收到以下错误:

Cannot resolve keyword 'MessageMonitor_owner' into field. Choices are: MyID, ...

1 个答案:

答案 0 :(得分:3)

我不确定你在哪里获得MessageMonitor_owner - 这既不是模型名称,也不是你展示的模型上的字段。要使用您显示的模型和外键关系进行过滤,请使用:

monitor_recip = MessageMonitoring.objects.filter(MyID=recipient)

或者,如果您不需要视图中任何其他内容的收件人对象,请通过对其PK进行过滤来保存一些数据库使用,而不是检索该对象:

monitor_recip = MessageMonitoring.objects.filter(MyID_id=toid)