Python 基于Django类的视图继承问题
我有两个form类,每个类都是同一个模型的ModelForm。一个名为Python 基于Django类的视图继承问题,python,django,Python,Django,我有两个form类,每个类都是同一个模型的ModelForm。一个名为ProjectForm,另一个名为AdminProjectFormProjectForm排除了许多字段,AdminProjectForm没有 在我看来,我使用了两个类,Edit和AdminEditEdit使用UpdateView的Django通用编辑视图,并将form\u类设置为ProjectFormAdminEdit是一个继承的Edit,并将form\u类设置为AdminProjectEdit 有人会认为这意味着AdminE
ProjectForm
,另一个名为AdminProjectForm
ProjectForm
排除了许多字段,AdminProjectForm
没有
在我看来,我使用了两个类,Edit
和AdminEdit
Edit
使用UpdateView
的Django通用编辑视图,并将form\u类设置为ProjectForm
AdminEdit
是一个继承的Edit
,并将form\u类设置为AdminProjectEdit
有人会认为这意味着AdminEdit
生成的表单将显示Edit
上排除的字段。此部分工作正常-表单字段的绘制非常精细(并且未在Edit
上绘制)。但是,在提交AdminEdit
表单时,ProjectForm
中排除的任何字段都会被剥离而不保存。有何建议
这是我的表单.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 = ()
和my views.py:
class Edit(UpdateView):
model = Project
form_class = ProjectForm
class AdminEdit(Edit):
model = Project
form_class = AdminProjectForm
我做过类似的事情,但没有你描述的效果。我想问题出在别处。为什么AdminEdit
继承自Edit
,而不是UpdateView
?继承链是AdminEdit->Edit->UpdateView
。但它会在Edit
处停止,因为Edit
满足了每一项管理任务它的要求。它与Python和newstyle类的MRO有关。这可能会帮助您更多->