2012-09-04 3 views
1

로그인 한 사용자가 수퍼 유저가 아닌 경우 Django Admin의 양식에서 일부 필드를 숨겨야합니다. 이것은 내가 생각 해낸 것입니다 :장고 관리자 - 덮어 쓰기 후 인라인 양식이 누락되었습니다.

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) 
희망이 도움 부모 메서드를 호출하기 전에 그것을 제외
관련 문제