簡體   English   中英

Django 與用戶的一對一關系不使用查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM