Динамические формы в django-admin

Я хочу добавить динамическую админ-форму. Я хочу добавить несколько полей форм в зависимости от настройки в связанном объекте.

У меня есть что-то вроде этого:

class ClassifiedsAdminForm(forms.ModelForm): def __init__(self,*args, **kwargs): super(ClassifiedsAdminForm, self).__init__(*args, **kwargs) self.fields['testujemy'] = forms.CharField(label = "test") 

И в admin.py:

 class ClassifiedAdmin(admin.ModelAdmin): def get_form(self, request, obj=None, **kwargs): return ClassifiedsAdminForm 

Как вы можете видеть, я хочу добавить «testujemy» CharField в админ-форму администратора и изменить форму. Однако этот способ не работает. Есть ли способ добавить поле в init ? Он работает в нормальном режиме.

One Solution collect form web for “Динамические формы в django-admin”

Мне удалось это сделать с помощью type ().

 class ClassifiedAdmin(admin.ModelAdmin): def get_form(self, request, obj=None, **kwargs): adminform = ClassifiedsAdminForm() fields = adminform.getNewFields() form = type('ClassifiedsAdminForm', (forms.ModelForm,), fields) return form 

Надеюсь, это поможет кому-то.

Python - лучший язык программирования в мире.