Django onetoone отношения с пользователем не работает с запросом - PullRequest
0 голосов
/ 26 января 2019

Моя модель такая

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

Я пытаюсь пройти через модели, используя оболочку, но получаю пустой запрос. Я попробовал это

>>> 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.

Я пытаюсь получить пользователя для этого профиля.

1 Ответ

0 голосов
/ 26 января 2019

Этот профиль просто не создан.Установка отношения OneToOne не гарантирует, что профиль будет существовать для каждого пользователя.Чтобы преодолеть это, вы должны просто создать новый профиль, например:

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

Чтобы автоматизировать процесс получения существующего профиля или создания нового, вы можете использовать метод get_or_create.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...