2017-04-25 1 views
0

일부 특성의 특정 값을 가진 개체 만 편집 할 수 있기를 원하지만 장고 관리자에서 개체를 관리하려고합니다. 정확히 저는 admin.py에 있습니다 :django에서 개체 필터링 admin

class UnitAdmin(admin.ModelAdmin): 
    list_display = ('type', 'name', 'result_file') 
    list_filter = ['type'] 
admin.site.register(Unit, UnitAdmin) 

그리고 type='SomeSpecificType'으로 단위를 관리하고 싶습니다. SimpleListFilter 클래스를 오버라이드 (override)하는 것으로 보았습니다 만, 여기에 어떻게 적용 할 수 있는지는 알 수 없습니다.

답변

2

당신은 드 modelAdmin에서 get_queryset을 무시해야 및 필터 객체를 할 수 있습니다.

class UnitAdmin(admin.ModelAdmin): 
    ... 

    def get_queryset(self, request): 
     qs = super(UnitAdmin, self).get_queryset(request) 
     return qs.filter(type='SomeSpecificType') 
1

당신은 type='SomeSpecificType

class UnitAdmin(admin.ModelAdmin): 
    list_display = ('type', 'name', 'result_file') 
    list_filter = ['type'] 

    def get_readonly_fields(self, request, obj=None): 
     if obj and obj.type == 'SomeSpecificType': 
      return [] 
     return ["type", "name", "result_file"] 
관련 문제