gpt4 book ai didi

python - Django onetoone 与用户的关系不使用查询

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:54 26 4
gpt4 key购买 nike

我的模型是这样的

class Profile(models.Model):
user = models.OneToOneField(User,default=None,null=True,on_delete=models.CASCADE)
name = models.CharField(max_length=50,null=True)

我正在尝试使用 shell 来访问模型,但得到的查询为空。我试过这个

>>> u1=User.objects.get(username='gautam')
>>>u1
<User: gautam>
>>> Profile.objects.get(user=u1)
Traceback (most recent call last):
File "/usr/lib/python3.6/code.py", line 91, in runcode
exec(code, self.locals)
File "<console>", line 1, in <module>
File "/home/gautam/.local/lib/python3.6/site-
packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/gautam/.local/lib/python3.6/site-
packages/django/db/models/query.py", line 399, in get
self.model._meta.object_name
homes_login.models.DoesNotExist: Profile matching query does not
exist.

我正在尝试获取该配置文件的用户。

最佳答案

根本就没有创建此配置文件。设置 OneToOne 关系并不能保证每个用户都存在该配置文件。为了克服这个问题,您应该简单地创建新的配置文件,如下所示:

>>> Profile.objects.create(user=u1)

要自动执行获取现有配置文件或创建新配置文件的过程,您可以使用 get_or_create 方法。

关于python - Django onetoone 与用户的关系不使用查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54379143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com