Python 基于Django类的视图继承问题

Python 基于Django类的视图继承问题,python,django,Python,Django,我有两个form类,每个类都是同一个模型的ModelForm。一个名为ProjectForm,另一个名为AdminProjectFormProjectForm排除了许多字段,AdminProjectForm没有 在我看来,我使用了两个类,Edit和AdminEditEdit使用UpdateView的Django通用编辑视图,并将form\u类设置为ProjectFormAdminEdit是一个继承的Edit,并将form\u类设置为AdminProjectEdit 有人会认为这意味着AdminE

我有两个form类,每个类都是同一个模型的ModelForm。一个名为
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有关。这可能会帮助您更多->