0
ユーザーがそのデータを編集するための指定された権限を持っていない場合、インラインを動的に削除しようとしています。しかし、インラインは、スーパーユーザーとしてログインしているときにのみ表示されます。どうすればこの問題を解決できますか?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
のすべてのフィールドを作りたい:私は現在、私がやっているdjango-nested-inline package.を使用しています。誰にもアイデアはありますか?