2012-01-23 3 views
2

다른 여러 클래스가 상속 된 하나의 클래스가 모델에 있다고 가정합니다. 이제 관리 인터페이스의 레이아웃을 제어하는 ​​관리 클래스도 정의합니다.Django 관리자가 필드 세트를 덮어 씁니다.

다른 모든 관리 클래스를 상속받을 수 있지만 (모델에서했던 것처럼) 필드 세트를 덮어 써서 새로운 값을 추가 할 수 있습니까?

예 : 모델 파일에서

은 : 관리자 파일

class A(models.Model): 
    field1 = models.TextField(..) 
    field2 = models.TextField(..) 

class B(A): 
    field3 = models.TextField(..) 

는 :

class A_Admin(admin.ModelAdmin): 
    fieldsets = (
     (None, { 
      'fields': (('field1', 'field2')) 
     }), 
    ) 

class B_Admin(A_Admin): 
    pass # here I notice that it takes the fields from A_admin, I would like to add my field 3 without rewriting the fieldsets 

admin.site.register(A, A_Admin) 
admin.site.register(B, B_Admin) 

결과 필드 셋

은 다음과 같습니다

(
     (None, { 
      'fields': (('field1', 'field2')) 
     }), 

     ('Specific to B', { 
      'fields': ('field3') 
     }), 
    ) 

답변

0

나도 몰라 그것은 깔끔한 해결책이지만 sh ould는 당신이 원하는 것을합니다.

class A_Admin(admin.ModelAdmin): 
    fieldsets = [ 
      (None, {'fields': ['field1', 'field2']}), 
    ] 

class B_Admin(A_Admin): 
    fieldsets = [ 
      ('Specific to B', {'fields': ['field3', 'field4']}), 
    ] 
    fieldsets.insert(0, A_Admin.fieldsets[0]) 
관련 문제