我正在基于 Django 在 Django 中滚动我自己的自定义注册模块django.contrib.auth. 我的注册模块将具有一些额外的功能,并帮助我减少对我当前使用的其他 django 模块的依赖,例如 django-registration 和 django-emailchange。我在这里遇到了一个最好的方法来做它的问题。
注意:所有用户帐户均基于django.contrib.auth.models.User模型。
当用户单击“注册”链接时,请求会传递给我名为register. 我有一个自定义表单,它有四个字段——用户名、电子邮件、密码 1 和密码 2。该表格基于django.forms.Form. 该表单提供基本验证,例如 passoword1 和 password2 是电子邮件;电子邮件/用户名不存在。
当数据被 POST 回我的注册视图时,我调用is_valid()表单的方法,之后,我通过调用create_user()in调用的 Manager 方法创建一个新用户django.contrib.auth.models.UserManager。此时我需要添加更多自定义功能,例如发送激活电子邮件等。作为最佳实践方法,这个逻辑应该在哪里?这应该在User模型的方法中吗?它应该是它目前所在的位置 - 模型的经理吗?还是应该将其放入save()我的注册表单的自定义方法中?
谢谢。