【问题标题】:get_object_or_404 does not work on User modelget_object_or_404 在用户模型上不起作用
【发布时间】:2018-11-21 11:08:52
【问题描述】:

当我使用时:

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

我在这里做错了什么?

【问题讨论】:

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


    【解决方案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)
    

    【讨论】:

    • 但是这样做绝对没有意义。整个事情的返回值 User.objects.latest('id')。为什么要将它包装在另一个返回相同内容的查询中?
    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 2020-12-13
    • 2020-04-07
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多