Django admin не показывает дополнительные поля, добавленные в метод init modelform
Я нашел пару вопросов по этому поводу, но меня конкретно интересует, как добавить поле в методе ModelForms __init__().
Потому что я получаю количество полей из функции и мне нужно отобразить их в админке:
class SomeForm(forms.ModelForm):
class Meta:
model = Product
fields = ["name", "price",]
def __init__(self, *args, **kwargs):
number_of_fields = get_number of fields(kwargs["instance"])
print(number_of_fields) ## e.g. 3, gives output
super().__init__(*args, **kwargs)
for i in range(number_of_fields):
self.fields[i] = forms.CharField("test", required = False)
Но поля не отображаются на странице редактирования в админке шаблона. Что я пропустил? Ошибка тоже не выскакивает...
Попробуйте что-то вроде этого... но вам нужно как-то передать имя поля в self.base_fields['name_of_the_field']
class SomeForm(forms.ModelForm):
class Meta:
model = Product
fields = ["name", "price",]
def __init__(self, *args, **kwargs):
number_of_fields = get_number_of_fields(kwargs["instance"])
print(number_of_fields) ## e.g. 3, gives output
for i in range(number_of_fields):
self.base_fields['name_of_the_field'] = forms.CharField(initial="test", required = False)
super(SomeForm, self).__init__(*args, **kwargs)