2017-04-25 6 views
0

私はdjangoの管理でオブジェクトを管理したいと思いますが、特定の属性の値を持つオブジェクトを編集できるようにしたいと考えています。djangoのオブジェクトをフィルタリングする

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

をそして私はtype='SomeSpecificType'でのみユニットを管理したいと思います:正確には私はadmin.pyに今持っています。私はSimpleListFilterクラスをオーバーライドして何かを見ましたが、ここにどのように当てはまるのか分かりません。

答えて

2

あなたはデModelAdminの中01​​をオーバーライドする必要があり、フィルターオブジェクトを行うことができます。

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"] 
関連する問題