2017-09-15 83 views
0

我試圖動態刪除內聯如果用戶沒有指定的權限編輯該數據。但是,只有當我以超級用戶身份登錄時纔會顯示內聯。我將如何解決這個問題?我使用的是django-nested-inline package.目前我正在做:Django管理員:動態刪除內聯字段

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只讀的字段。有人有任何想法嗎?

回答

0

原來是因爲用戶沒有添加/編輯/刪除嵌套內聯事件的權限而沒有顯示出來。以防萬一以後有人有這個問題,我會放棄它。

app | event | Can add event 
app | event | Can change event 
app | event | Can delete event