Django:为什么用户模型包含在UserCreationForm中声明的自定义字段

Django:为什么用户模型包含在UserCreationForm中声明的自定义字段,django,django-models,django-forms,Django,Django Models,Django Forms,我正在学习django关于注册的教程,我觉得这段代码没有意义。首先,我们不应该写一个自定义的email字段,它与用户email字段没有什么不同,而应该将email添加到字段列表中吗 但我的主要问题是关于在字段中编写password1和password2。现在我知道这些是UserCreationForm的自定义字段,并通过继承传递给UserRegistrationForm。事实上,密码和重新输入密码字段在html页面上是可见的,即使我从字段中删除了它们。我不明白的是为什么把它们留在那里不会导致错误

我正在学习django关于注册的教程,我觉得这段代码没有意义。首先,我们不应该写一个自定义的email字段,它与用户email字段没有什么不同,而应该将email添加到字段列表中吗

但我的主要问题是关于在字段中编写password1和password2。现在我知道这些是UserCreationForm的自定义字段,并通过继承传递给UserRegistrationForm。事实上,密码和重新输入密码字段在html页面上是可见的,即使我从字段中删除了它们。我不明白的是为什么把它们留在那里不会导致错误?用户模型只有一个password字段,它将通过save方法等同于表单的password1字段:

        user = super(UserCreationForm, self).save(commit=False)
        user.set_password(self.cleaned_data["password1"])
        if commit:
            user.save()
        return user
但是模型本身不应该有这些字段,但是我没有得到一个错误。有什么想法吗