【发布时间】:2014-09-24 08:11:31
【问题描述】:
我正在根据帖子中的信息在管理员中过滤用户:Filter django admin by logged in user 我的变更列表按预期过滤,只有“组名”组中的用户过滤了变更列表的视图,只看到他们的事件。问题是当他们尝试编辑他们的事件时,他们进行了更改并在管理员中获得了他们的事件已成功更改的反馈,但更改没有保存。谁能告诉我为什么?我还希望不在被过滤组中的用户有权编辑事件,以便能够保存更改。在我开始过滤之前更改已保存;)
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',)
}
【问题讨论】:
标签: django permissions django-admin