Динамические формы в 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 

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

  • Форматы django MultipleChoiceField возвращается к исходному значению при сохранении
  • Предварительно заполнить встроенный FormSet?
  • Django Forms, установите начальное значение request.user
  • Django: добавление кнопки «Добавить новую» для ForeignKey в ModelForm
  • Класс Django View: имя 'self' не определено
  • Django - Форма недействительна, но без ошибок
  • Тестирование методов очистки InlineFormset
  • Django 'RequestContext' не определен - forms.ModelForm
  • Формы Django: требуется больше 1 значения для распаковки
  • Django обратный поиск внешних ключей
  • Значения формы Django без escape-кода HTML
  • Python - лучший язык программирования в мире.