【发布时间】:2017-09-15 23:00:22
【问题描述】:
如果用户没有编辑该数据的指定权限,我正在尝试动态删除内联。但是,仅当我以超级用户身份登录时才会显示内联。我将如何解决这个问题?我正在使用django-nested-inline package. 目前我正在做:
class ClientAdmin(NestedModelAdmin):
"""
Admin for Clients. adp_id is only editable if the user has the permission.
"""
fieldsets = [
(None, {'fields': [('user', 'company', 'external_id',)]}),
]
inlines = [EventInline]
def get_form(self, request, obj=None, **kwargs):
"""
Removes the EventInline if user doesn't have the edit_event permission.
"""
if not request.user.has_perm('app.edit_event'):
self.inlines = []
return super(ClientAdmin, self).get_form(request, obj, **kwargs)
class EventInline(NestedStackedInline):
model = Event
fk_name = 'client'
ordering = ['completion_time']
fieldsets = [
(None, {'fields': [('training', 'status', 'due_date'), ('authorized_by', 'completion_time'), 'comments']})
]
extra = 0
我想从inlines 中删除EventInline 或将EventInline 中的所有字段设为只读。有人有什么想法吗?
【问题讨论】:
标签: django django-forms django-admin