Django - Добавление полей в ModelForm, который наследуется от родительской модели? - PullRequest
0 голосов
/ 13 сентября 2018

ех.model = Foo Foo.fields (a, b, c, d)

FooModelForm1 (forms.Modelform): fields = [a, b, c] и т. д.

FooModelForm2 (FooModelForm1):fields = [d]

Как вы можете видеть, все 4 поля существуют в модели, но FooModelForm1 использует только 3 поля, в то время как я хочу, чтобы FooModelForm2 включал в себя поле [d], а также другие.

В документации объясняется, что вы можете исключить поля, поэтому я знаю, что одним из вариантов было бы перевернуть мои формы и изначально включить поле [d], но мне было любопытно, возможно ли обратное.

Я видел ответы, которые изменяют метаданные из FooModelForm2, но, кажется, они не работают для меня, такие как:

class Meta(FooModelForm1.Meta):
        fields = ReqLineForm.Meta.fields + ['d'] 

Решено

Я сделалошибка переключения формы, которую я вызывал, на мой взгляд, на новую форму, созданную мной, которая унаследовала мою старую форму.Таким образом, добавление поля так же просто, как то, что я поместил над обновлением, зависит от того, использовали ли вы список или кортеж для установки своих полей.

1 Ответ

0 голосов
/ 13 сентября 2018

Как то так ...

class FooModelForm2(FooModelForm1):
     field_d = forms.EmailField(required=True)

    class Meta:
        model = User
        fields = ("field_a", "field_b", "field_c", "field_d")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...