Как я могу присвоить id / pk номер существующему пользователю? - PullRequest
0 голосов
/ 24 февраля 2020

первый постер, новый кодер. Прости мое невежество!

Я пытаюсь запросить id / pk пользователей в моей пользовательской таблице в оболочке python, но мне сообщают, что мои пользователи не имеют этого атрибута. Я думал, что это было создано автоматически?

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

Заранее спасибо!

>>>user = User.objects.filter(username='alice')
>>>user
<QuerySet [<User: alice>]>
>>>user.id
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'QuerySet' object has no attribute 'id'
>>> user.pk
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'QuerySet' object has no attribute 'pk'

1 Ответ

1 голос
/ 24 февраля 2020

Ваша переменная user является QuerySet, а не User объектом. User.objects.filter(...) возвращает QuerySet. Вы можете видеть это, потому что результат был [<User: alice>] ( список ), а не <User: alice> ( Пользователь ).

Также ошибка говорит: « QuerySet объект не имеет атрибута« id »», он не говорит « Пользователь объект не имеет атрибута« id »». то есть прочитайте ошибку !

Чтобы получить указанного пользователя c, используйте get(): User.objects.get(username='alice'). Обратите внимание, что get() вызовет исключение, если объект не существует.

Просмотрите документацию по QuerySets , чтобы узнать, какие методы возвращают наборы запросов, а какие возвращают объекты.

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