ModelAdmin.get_fields()と同様に、サブクラスに項目を追加できるような他のヘルパー関数もありますが、これはfilter_horizontalに対して可能ですか?現時点では私は、それぞれの子adminクラスに手動で再書き込みリストにありますDjangoで親のfilter_horizontalに追加admin
BaseAdminClass(admin.ModelAdmin):
...
fields = ['some_field', 'many_to_many_field']
filter_horizontal = ['many_to_many_field']
ChildAdminClassOne(admin.ModelAdmin):
def get_fields(self, request, obj=None):
fields = super(ChildAdminClass, self).get_fields(request, obj)
return fields + ['another_field']
# Something like get_filter_horizontal()?
filter_horizontal = ['many_to_many_field' + 'another_field']
ChildAdminClassTwo(admin.ModelAdmin):
def get_fields(self, request, obj=None):
fields = super(ChildAdminClass, self).get_fields(request, obj)
return fields + ['other_field']
filter_horizontal = ['many_to_many_field' + 'other_field']
そして、私は 'fields'を属性と同じだろう。 – Raz
あなたの解決策にはタイプミスがあります: 'return self.default_filter_horizontal + self.additional_filter_horizontal'これは正解として受け入れられましたが、新しい任意のフィールド名を追加するというのは本当に嫌いです(すなわちadditional_filter_horizontal、default_filter_horizontal) 。これはコードを見ている誰かには分かりません。また、サブクラスごとにfilter_horizontalフィールドの順序を変更することはできません。 – silentz0r