[英]Django onetoone relationship with User not working with query
我的模型是這樣的
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
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.