Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-无法将关键字解析为字段_Python_Django - Fatal编程技术网

Python Django-无法将关键字解析为字段

Python Django-无法将关键字解析为字段,python,django,Python,Django,我创建了一个名为key的模型,它使用名为public的外键扩展了用户模型。模型如下: class key(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) public = models.CharField(max_length=30, blank=True) 这是可行的,但当我尝试执行以下查询时: User.objects.get(public=token) 我收到以下错误:

我创建了一个名为
key
的模型,它使用名为
public
的外键扩展了用户模型。模型如下:

class key(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    public = models.CharField(max_length=30, blank=True)
这是可行的,但当我尝试执行以下查询时:

User.objects.get(public=token)

我收到以下错误:
无法将关键字“public”解析到字段中
。如何在外键上执行此查询?任何建议都将不胜感激

这不是
用户
模型的字段。但是,您可以使用双下划线(
\uuuu
)来查看关系,因此您可以查询:

User.objects.get(key__public=token)
User.objects.get(key\u public=token)

注意:Django中的模型是用PerlCase编写的,而不是用snake_大小写, 因此,您可能需要将模型从
key
重命名为
key


这不是
用户
模型的字段。但是,您可以使用双下划线(
\uuuu
)来查看关系,因此您可以查询:

User.objects.get(key__public=token)
User.objects.get(key\u public=token)

注意:Django中的模型是用PerlCase编写的,而不是用snake_大小写, 因此,您可能需要将模型从
key
重命名为
key


多谢各位!我只是注意到另一种方法是在我的model@Jack022:是如果您不喜欢反向查询的关系名称,您可以指定
相关的\u查询\u name='otherkey'
,例如在
外键中,然后使用
.get进行查询(otherkey\uu public=token)
。非常感谢!我只是注意到另一种方法是在我的model@Jack022:是如果您不喜欢反向查询的关系名称,您可以指定
相关的\u查询\u name='otherkey'
,例如在
外键中,然后使用
.get(otherkey\uu public=token)
进行查询。