Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自定义用户表单,而不是内置的+;自定义必填字段_Python_Django_Django Authentication - Fatal编程技术网

Python 自定义用户表单,而不是内置的+;自定义必填字段

Python 自定义用户表单,而不是内置的+;自定义必填字段,python,django,django-authentication,Python,Django,Django Authentication,我正在用django构建一个登录/注销用户系统,然后开始使用django身份验证系统 我正在使用自定义Django UserCreationForm,如下所示: views.py 但是这个表单呈现了很多不需要的东西,如下所示: 首先,我想去掉添加的信息,有没有好的方法?有什么好方法可以做到这一点吗?有没有办法自己编辑UserCreationForm,或者我必须创建自己的表单 其次,假设我想向注册页面添加更多必填字段,那么最好的方法是什么?假设我想让一个人注册男性或女性-我意识到我应该扩展用户模型

我正在用django构建一个登录/注销用户系统,然后开始使用django身份验证系统

我正在使用自定义Django UserCreationForm,如下所示:

views.py 但是这个表单呈现了很多不需要的东西,如下所示:

首先,我想去掉添加的信息,有没有好的方法?有什么好方法可以做到这一点吗?有没有办法自己编辑UserCreationForm,或者我必须创建自己的表单


其次,假设我想向注册页面添加更多必填字段,那么最好的方法是什么?假设我想让一个人注册男性或女性-我意识到我应该扩展用户模型,但我如何同时注册到原始用户模型和扩展用户模型?

与其扩展UserCreationForm类,不如重写它。检查它的来源

例如,如果要删除密码字段旁边的文字“输入与上面相同的密码”,请删除此行:

help_text=_("Enter the same password as above, for verification."))
来自django/django/contrib/auth/forms.py(在上面的链接中)


编辑:我建议您重写表单类而不是扩展它们的原因是因为这样更方便。从Django文档:

如果您不想使用内置视图,而是想要方便 不必为此功能编写表单 身份验证系统提供了位于 django.contrib.auth.forms

如果要扩展用户模型类,则需要相应地更改表单类。再次从文档中:

正如您所料,内置的Django表单和视图可以确保 关于他们正在使用的用户模型的假设。如果你的 用户模型不遵循相同的假设,可能需要 定义替换表单,并将该表单作为 验证视图的配置

有关详细信息,请参阅和

如果您只是想更改UserCreationForm您可以像我前面提到的那样在forms.py模块中编辑UserCreationForm类


如您在问题中所述,如果您想向注册页面添加更多必填字段,则需要创建自定义用户模型。有关如何执行此操作的详细信息,请参见

能否详细说明如何执行此操作?我是否插入源代码并在自己的forms.py文件中进行更改?如果你不想解释,你能告诉我一个好的开始,而不是源文件本身吗。还有,我为什么要这样做,而不仅仅是扩展模型类?这些好处是什么?@ApathyBear更新了我的答案,提供了更多细节。如果这已经回答了您的问题,请随意选择它作为答案。感谢fr1tz的回答,非常有用。:)
help_text=_("Enter the same password as above, for verification."))