我有一个查询集:
messages = Message.objects.all()
无论如何,我都想获得第一个项目的“内容”。
我试过这个:
messages[1].content
但这给了我一个超出范围的索引错误。
尝试这个:
messages[0].content
Python 中的索引是从0开始的——这意味着:列表中的第一个元素位于索引 0 处,第二个元素位于索引 1 处,依此类推。该错误的另一个可能原因Message.objects.all()
是返回一个空列表。
假设您使用 Django 1.6,您可以这样做
message = Message.objects.all().first()
如果你使用的 Django 低于 1.6
message = Message.objects.all()[0]
这将产生的基本上是一个 SQL LIMIT 查询。
SELECT * FROM Messages LIMIT 1;
你一定要阅读这个文档——它是关于 Django 如何处理 QuerySets 的切片和酸洗的。
第一个是 0 不是 1 尝试
messages[0].content