2 つのフォーム クラスがあり、それぞれが同じモデルの ModelForm です。1 つが呼び出され ProjectForm、もう1 つが呼び出されAdminProjectFormます。ProjectFormいくつかのフィールドが除外されていますが、そうでAdminProjectFormはありません。
私の見解では、2 つのクラスを使用していEditますAdminEdit。Editの Django 汎用編集ビューを使用し、UpdateViewにform_class設定されていProjectFormます。AdminEditは継承されEdit、 にform_class設定されていAdminProjectEditます。
これは、 によって生成されたフォームAdminEditが で除外されたフィールドを表示することを意味すると考える人もいるでしょうEdit。この部分は正しく機能しています - フォーム フィールドは完全に正常に描画されます (そして には描画されませんEdit。ただし、フォームを送信するときに、AdminEditで除外されたフィールドProjectFormは削除され、保存されません。何か提案はありますか?
これが私のものforms.pyです:
class ProjectForm(ModelForm):
class Meta:
model = Project
exclude = ('field1', 'field2', 'field3', 'qualifies_for_judging', 'reason_for_disqualification', 'finalist', 'hashtag')
class AdminProjectForm(ModelForm):
class Meta:
model = Project
exclude = ()
そして私のviews.py:
class Edit(UpdateView):
model = Project
form_class = ProjectForm
class AdminEdit(Edit):
model = Project
form_class = AdminProjectForm