访问链接到Django用户的模型

时间:2017-03-14 11:47:19

标签: python django

使用python 2.7和Django 1.10

我有一个名为"主机名"链接到Django用户。我可以为用户分配一个模型对象,并正确创建对象;通过django管理GUI,我可以确认该对象"主机名"已创建并正确分配给选择的用户。

我的问题是,通过" Python manage.py shell",如何列出所有"主机名"链接到特定用户的对象,可以调用用户" user1"。

到目前为止,我已经得到了这个:

>>> from app.models import *
>>> from django.contrib.auth.models import User
>>> userVar = User.objects.get(pk=2)
>>> userVar
<User: user1>
>>> userVar.hostname()

上述内容失败了:

User object has no attribute "hostname"

我已尝试对上述命令进行不同的编辑,但都失败并出现同样的错误。

在models.py中:

class Hostname(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=200)
    def __str__(self):
        return self.name

我已经尽力去谷歌这个,但我是Django的新手,并且还在研究术语,所以如果有人能够纠正我在这里使用的术语,那将是非常感激的。

1 个答案:

答案 0 :(得分:1)

您正在尝试查询记录为here的反向关系。

  

如果模型具有ForeignKey,则外键模型的实例将   有权访问返回第一个实例的Manager   模型。默认情况下,此Manager名为FOO_set,其中FOO为   源模型名称,小写。此Manager返回QuerySets   可以按照“检索”中的描述进行过滤和操作   对象“上面的部分。

user = User.objects.get(pk=2)
user_hosts = user.hostname_set.all()