Django 获取foreignkey的queryset

Django 获取foreignkey的queryset,django,orm,foreign-keys,Django,Orm,Foreign Keys,我需要获得一个外国钥匙的查询集,但我还没有弄清楚如何获取 我有以下型号: class Contact(models.Model): owner = models.ForeignKey(CustomUser, related_name='contact_set') referenced = models.ForeignKey(CustomUser, related_name='contacted_by_set') 然后,对于当前用户,我需要一个查询集来检索引用的用户。以下返回联系

我需要获得一个外国钥匙的查询集,但我还没有弄清楚如何获取

我有以下型号:

class Contact(models.Model):
    owner = models.ForeignKey(CustomUser, related_name='contact_set')
    referenced = models.ForeignKey(CustomUser, related_name='contacted_by_set')
然后,对于当前用户,我需要一个查询集来检索引用的用户。以下返回联系人对象,我需要用户对象:

print request.user.contact_set.all()
此外,它还需要是一个查询集,因为它将被modelmultipechoicefield使用

谢谢

应该这样做


应该这样做

Oji的语法是正确的,但我要指出,这实际上是一个多方面的关系。如果显示了完整的联系人定义,并且没有任何其他表,则可能会遗漏整个表,而直接在CustomUser上定义关系:

contacts = ManyToManyField('self', related_name='referenced_users')
或者,如果联系人上有其他字段,则可以通过class='Contact'在该ManyToManyField上添加

在任何一种情况下,查询都会变成:

request.user.referenced_users.all()

Oji的语法是正确的,但我要指出,这实际上是一种多人关系。如果显示了完整的联系人定义,并且没有任何其他表,则可能会遗漏整个表,而直接在CustomUser上定义关系:

contacts = ManyToManyField('self', related_name='referenced_users')
或者,如果联系人上有其他字段,则可以通过class='Contact'
在该ManyToManyField上添加

在任何一种情况下,查询都会变成:

request.user.referenced_users.all()

+一个好电话。这绝对是一个更好的解决方案。我脑子里放了个屁。+1个好球。这绝对是一个更好的解决方案。我脑子里放了个屁。