Тот же результат для pk = request.user и pk = request.user.id в django - PullRequest
6 голосов
/ 10 января 2012
class MyUser(User):
    job = ...
    city = ....

MyUser.objects.get(pk=request.user) и MyUser.objects.get(pk=request.user.id) дают мне тот же результат.Начиная с doc , pk должен быть int.Но request.user - это объект.Почему запросы одинаковы для объекта и идентификатора пользователя?

edit: я знаю, что request.user является объектом, но я хочу знать, почему результаты одинаковые.

1 Ответ

9 голосов
/ 10 января 2012

Это сделано специально - если вы передаете объект модели в качестве параметра в запрос, это то же самое, что и передача его первичного ключа.

Если бы это не было поведением, потребовалось бы либо передать pk, либо ошибку, которая просто раздражала бы.

Спасибо ребусу за ссылку на источник: https://code.djangoproject.com/browser/django/trunk/django/db/models/fields/related.py#L175

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