我有一个查询集:
messages = Message.objects.all()
我想在第一项上获得'内容',无论如何。
我试过这个:
messages[1].content
但是这给了我一个超出范围误差的索引。
答案 0 :(得分:3)
试试这个:
messages[0].content
Python中的索引为0-based - 意思是:列表中的第一个元素位于索引0处,第二个元素位于索引1处,依此类推。导致错误的另一个可能原因是Message.objects.all()
正在返回一个空列表。
答案 1 :(得分:3)
假设您使用Django 1.6,您可以
message = Message.objects.all().first()
如果你使用的Django小于1.6
message = Message.objects.all()[0]
这将产生什么基本上是一个SQL LIMIT查询。
SELECT * FROM Messages LIMIT 1;
你应该肯定阅读this documentation - 这是关于Django如何处理QuerySets的切片和腌制。
答案 2 :(得分:1)
第一个是0而不是1个尝试
messages[0].content