【问题标题】:Filter but get object - django过滤但获取对象 - django
【发布时间】:2014-05-11 13:00:14
【问题描述】:

我在做:

MyModel.objects.filter(name=givenname).latest('added')

但我得到一个查询集:

[<MyModel: object title>]

但我只需要对象,如何使用 filter() 只获取对象而不获取查询集?

【问题讨论】:

    标签: python django django-queryset


    【解决方案1】:

    不要使用filter,而是使用get(或另外)

    在你的情况下:

    MyModel.objects.filter(name=givenname).latest('added')
    

    或者:

    MyModel.objects.filter(name=givenname).get()
    

    【讨论】:

    • @doniyor:查看 API,latest() 应该已经为您提供了一个项目。你的结果没有任何意义,你能发布你的模型和经理吗?
    • latest() 仅在您不使用 filter() 时才给您反对 - 我说的对吗?
    • 不是根据文档:docs.djangoproject.com/en/dev/ref/models/querysets/… 所以我认为你的经理覆盖了latest() 方法。
    • .get() 给你一个对象并假设你的查询只给出一个结果。 .latest() 为您提供一个对象,根据您排序的字段,该对象是最新的。
    • 如果我首先过滤并在第二步从查询集中获取对象怎么办?! :)
    猜你喜欢
    • 2021-07-31
    • 2015-03-24
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多