get_object_or_404 не работает на модели пользователя - PullRequest
0 голосов
/ 21 ноября 2018

Когда я использую:

post = get_object_or_404(Employee, user_id=User.objects.latest('id'))

Возвращает последнего сотрудника, поскольку Employee.user_id является внешним ключом для User.id

Когда я использую:

post = get_object_or_404(User, id=User.objects.latest('id'))

Я ожидал получить последнего пользователя, но теперь я получаю следующую ошибку:

Аргумент int () должен быть строкой, байтовым объектом или числом, а не «пользователем»

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 21 ноября 2018

Как вы сказали:

Employee.user_id - это внешний ключ

Это внешний ключ, указывающий на объект User.

Следовательно, присвоение ему объекта, найденного по запросу User.objects.latest('id'), работает нормально.Во втором случае параметр id - это int (), а не внешний ключ, поэтому вы не можете присвоить ему объект User.Попробуйте с атрибутом id:

post = get_object_or_404(User, id=User.objects.latest('id').id)
...