Я хочу иметь дополнительные поля, касающиеся значения одного поля. Для этого я создаю настраиваемую форму администратора, чтобы добавить несколько новых полей.
В связи с сообщением в блоге jacobian 1 я придумал следующее:
class ProductAdminForm(forms.ModelForm):
class Meta:
model = Product
def __init__(self, *args, **kwargs):
super(ProductAdminForm, self).__init__(*args, **kwargs)
self.fields['foo'] = forms.IntegerField(label="foo")
class ProductAdmin(admin.ModelAdmin):
form = ProductAdminForm
admin.site.register(Product, ProductAdmin)
Но дополнительное поле 'foo' не отображается в админке. Если я добавлю такое поле, все будет работать нормально, но не так динамично, как требуется, чтобы добавить поля, относящиеся к значению другого поля модели
class ProductAdminForm(forms.ModelForm):
foo = forms.IntegerField(label="foo")
class Meta:
model = Product
class ProductAdmin(admin.ModelAdmin):
form = ProductAdminForm
admin.site.register(Product, ProductAdmin)
. Есть ли какой-нибудь метод инициализации, который я должен снова запустить, чтобы новое поле работает? Или есть еще одна попытка?