2012-09-04 66 views
1

如果登錄的用戶不是超級用戶,我需要從Django Admin的表單中隱藏一些字段。這是我想出了:Django Admin - 嵌入表單在覆蓋後丟失get_form

def get_form(self, request, obj=None, **kwargs): 
     form = super(RestauranteAdmin, self).get_form(request, obj, **kwargs) 
     if not request.user.is_superuser: 
      form.base_fields.pop('approved') 
      form.base_fields.pop('day_of_the_week') 
      form.base_fields.pop('photo') 
     form.label_suffix = '' 
     return form 

這確實隱藏了必要的字段,但由於某些原因,管理員也停止呈現我的內聯,如果用戶是不是超級用戶。據我所見,這種方法應該與內聯無關。我錯過了什麼嗎?

感謝,

回答

4

調用父類的方法

希望它可以幫助

def get_form(self, request, obj=None, **kwargs): 
    if not request.user.is_superuser:    
     self.exclude = [] 
    else:  
     self.exclude = ['approved','day_of_the_week','photo'] 

    return super(RestauranteAdmin, self).get_form(request, obj, **kwargs) 
之前就排除