在查询集中获取最近创建的对象?

时间:2017-07-26 20:50:38

标签: django django-queryset

尝试获取查询集中的最新对象并且我不断收到错误

  

/'PostManager'对象的TypeError不可迭代

如果不迭代,你怎么做?

...
app = Flask(__name__)
...

2 个答案:

答案 0 :(得分:2)

这一行错了:

  

home_list = list(Post.objects).order_by(' - id')[0]

Post.objects是PostManager:它不是可迭代的,你不能列出()它。

我猜你所追求的是:

home_list = Post.objects.all().order_by('-id').first()

first()和[0]之间的区别在于,如果查询集中没有结果,first()将不会抛出IndexError,它将返回None。

答案 1 :(得分:1)

下面的一个小的paranthesis错误
home_list = list(Post.objects).order_by('-id')[0]

将此更改为

home_list = list(Post.objects.all().order_by('-id'))[0]

另一种

home_list = Post.objects.all().order_by('-id').first()

也不需要在home_list上调用对象方法。以下也可以正常使用

context = {'content_list' : Content.objects.all(), 'home_list' : home_list}
相关问题