0
사용자가 해당 데이터를 편집 할 수있는 특정 권한이없는 경우 인라인을 동적으로 제거하려고합니다. 그러나 인라인은 슈퍼 유저로 로그인했을 때만 나타납니다. 어떻게 해결할 수 있을까요? 나는 내가하고있어 django-nested-inline package. 현재 사용하고 있습니다Django Admin : 인라인 필드를 동적으로 제거하십시오.
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
의 모든 필드를 만들고 싶어. 아무도 아이디어가 있니?