【发布时间】:2019-01-26 22:12:49
【问题描述】:
我的模型是这样的
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.
我正在尝试获取该个人资料的用户。
【问题讨论】:
-
这可能发生。请注意,
OneToOneField实际上不是意味着每个User都有一个Profile,这意味着您构造了一个ForeignKey,带有unique=True约束,这样两个Profiles 可以不指向同一个User。 -
嘿,非常感谢您的帮助
标签: python django python-3.x django-models django-rest-framework