繁体   English   中英

用户的Django管理员过滤器更改列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM