![](/img/trans.png)
[英]How to filter queryset in changelist_view in django admin?
[英]Django Admin filter changelist by user
我正在根据这篇文章中的信息来过滤管理员用户 : 通过登录用户过滤django管理员我的变更列表已按预期过滤,只有“组名”组中的用户过滤了变更列表的视图,仅查看其事件。 问题是当他们尝试编辑事件时,他们进行了更改并获得反馈,说明他们的事件已在管理员中成功更改,但是更改未保存。 谁能告诉我为什么? 我还希望不在筛选对象中的用户具有编辑事件的权限,以便能够保存更改。 在开始过滤之前,更改已保存;)
class FilterUserAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
if obj.user == None:
obj.user = request.user
obj.save()
def queryset(self, request):
qs = super(FilterUserAdmin, self).queryset(request)
if request.user.groups.filter(name__in=['Group Name',]):
return qs.filter(user=request.user)
else:
return qs
def has_change_permission(self, request, obj=None):
if not obj:
return True
return obj.user == request.user
class EventAdmin(FilterUserAdmin):
readonly_fields = ('user',)
list_filter = ('film', 'producing_partner',)
list_display = ('id', 'producing_partner', 'film', 'date_time', 'venue_name', 'city',)
class Media:
js = ('tiny_mce/tiny_mce.js', 'tiny_mce/textareas.js',)
css = {
'all': ('css/admin-mods.css',)
}
仅当obj.user == None
,我的条件才保存在obj.user == None
。
def save_model(self, request, obj, form, change):
if obj.user == None:
obj.user = request.user
obj.save()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.