【发布时间】:2015-01-28 06:26:26
【问题描述】:
我需要从 Django 模型中获取多个随机对象。
我知道我可以通过键入以下内容从模型 Person 中获取一个随机对象:
person = Person.objects.order_by('?')[0]
然后,我在How to get two random records with Django 中看到建议说我可以通过以下方式简单地做到这一点:
people = Person.objects.order_by('?')[0:n]
但是,只要我添加了 [0:n],Django 就不会返回对象,而是返回一个 QuerySet 对象。这会导致不幸的后果,如果我再要求
print(people[0].first_name, people[0].last_name)
我得到了 2 个不同人的名字和姓氏,因为 QuerySet 在被调用时被评估(对吗?)。如何获取从第一个查询返回的实际人员列表?
我正在使用 Python 3.4.0 和 Django 1.7.1
【问题讨论】:
标签: python django django-models django-queryset