UserCreationForm扩展不在模型中创建字段

时间:2017-09-20 17:09:33

标签: django

我已将Usercreationform扩展如下: //forms.py

class UserCreationForm(UserCreationForm):
    email = EmailField(label=_("Email address"), required=True,
        help_text=_("Required."))
    city= forms.CharField(label= _("City"),max_length=20, required=True)
    state= forms.CharField(label= _("State"),max_length=20, required=True)

    class Meta:
        model = User
        fields = ("username", "email", "password1", "password2","city","state")

    def save(self, commit=True):
        user = super(UserCreationForm, self).save(commit=False)
        user.email = self.cleaned_data["email"]
        user.city = self.cleaned_data["city"]
        user.state = self.cleaned_data["state"]

        if commit:
            user.save()
        return user

直到表单部分才能正常工作。模板显示所有这些字段,但这里有一个问题。我添加的字段,如城市,州等显示在表单上,​​但当我查询像User.city或除内置之外的任何东西,它告诉我,用户没有属性城市...这意味着字段不是在内置的用户模型中创建...所以我该怎么做?

1 个答案:

答案 0 :(得分:0)

这是一个常见的问题。好的,你有一个完整的表格给你的用户,但你的模型(用户)是完整的?所以你需要实现的是你的用户模型的扩展(添加自定义字段)。 How to Extend Django User Model会帮助你..