【发布时间】:2021-11-21 07:49:53
【问题描述】:
我添加了一个新操作来切换用户is_staff 属性。但是我注意到使用下面的方法,只能从True切换到False。反过来似乎不起作用(即从False 到True)。
admin.py
from django.db.models.expressions import F
actions = ['toggle_staff']
def toggle_staff(self, request, queryset):
queryset.update(is_staff= not F('is_staff'))
编辑
我使用迭代的解决方案是:
actions = ['toggle_staff']
def toggle_staff(self, request, queryset):
for user in queryset:
user.is_staff = not user.is_staff
user.save()
但我不认为这是针对成千上万的用户进行优化的。拜托,我在这里需要帮助。
【问题讨论】:
标签: python django django-admin django-queryset