Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:如何获取所有员工用户的查询集?_Python_Django_Django Queryset_Django Orm - Fatal编程技术网

Python Django:如何获取所有员工用户的查询集?

Python Django:如何获取所有员工用户的查询集?,python,django,django-queryset,django-orm,Python,Django,Django Queryset,Django Orm,Django:如何获取所有员工用户的查询集 我正在努力: staff = User.objects.get(is_staff=True) 但是得到一个类型错误: 'User' object is not iterable 使用filter而不是get staff = User.objects.filter(is_staff=True) 在queryset中获取是为了获取特定的对象值,不可编辑 user = User.objects.get(id=2) 它为您提供id为2的用户对象。只能有

Django:如何获取所有员工用户的查询集

我正在努力:

staff = User.objects.get(is_staff=True)
但是得到一个类型错误:

'User' object is not iterable

使用
filter
而不是
get

staff = User.objects.filter(is_staff=True)

在queryset中获取是为了获取特定的对象值,不可编辑

user = User.objects.get(id=2)
它为您提供id为2的用户对象。只能有一个id为2的用户

但在您的情况下,可能有许多用户具有员工身份

staff = User.objects.filter(is_staff=True)
这将为您提供员工列表。如果要查找一个对象,请使用get;如果要查找列表,请使用filter

现在,您可以像这样在模板中使用它

{% for stf in staff %}
    {{stf.username}}
{% endfor %} 

关键是当使用
staff=User.objects.get(is_staff=True)
时,您无法确定它是否会返回单个用户(除非您确实知道)

您可能希望添加更多标准,将选项缩小为一个


一个更安全的选择是用户
过滤器
,它返回具有匹配条件的用户列表,而不需要异常处理
对象。get
当情况不符合预期时get用于返回单个对象,而不是queryset。如果它从数据库返回多个条目,它将给出一个错误。在您的例子中,我猜它返回一个用户,而您正试图对其进行迭代

过滤器是您想要使用的。它返回一个可以迭代的查询集

staff = User.objects.filter(is_staff=True)
for person in staff :
    do stuff....