get_object_or_404在用户模型上不起作用

时间:2018-11-21 11:08:53

标签: django django-models django-forms django-views

当我使用时:

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()参数必须是字符串,类似字节的对象或数字,而不是'User'

我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

如您所说:

  

Employee.user_id是外键

这是指向User对象的外键。

因此,为它分配一个通过查询User.objects.latest('id')找到的对象即可。在第二种情况下,id参数是int()而不是外键,因此您不能为其分配User对象。尝试使用它的id属性:

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