【发布时间】:2014-05-12 08:35:48
【问题描述】:
假设我有一个父类 MyUser 的 modelForm,它保存了用户的公共信息。
用户有一个名为 role 的字段,指示他们所处的角色,我有 3 个特殊模型,用于 3 个角色。
我想要做的是在保存表单时检查表单的角色字段。如果它是这 3 个特殊角色之一,我想保存特殊模型(它是 MyUser 的孩子)而不是 MyUser ,否则,我希望 save 方法正常执行。(保存实际的 MyAbstractUser)。
class MyUserForm(forms.ModelForm):
retyped_pass = forms.CharField(label='Password Confirmation', widget=forms.PasswordInput, max_length=30, required=True)
class Meta:
model = MyUser
def save(self, ?):
if self.fields['role'] == 'researcher'
save ResearcherUser instead of MyUser
....
else: # if none of above
save MyUser
特殊用户类型有 ResearcherUser、ProducerUser 和 CenterUser,如果角色不是这 3 种,我希望它是 MyUser。
知道如何实现这一点吗?
在此先感谢:)
【问题讨论】:
标签: python django forms django-models