我正在我的一个项目中使用 django-registration
(参见:https://bitbucket.org/ubernostrum/django-registration) . django-registration的标准设置是在 urls.py
文件中添加以下代码
(r'^accounts/', include('registration.urls'))
并自定义名为 registration
的文件夹中的模板 .
上面的代码创建了注册,登录和密码恢复的链接,这很好 . 但是在我的项目中,我通常会添加一些其他函数给我的视图,所以如果我只是添加 include('registration.urls')
,似乎我无法自定义包含这些django-registration表单的视图 .
有没有办法在视图中调用 django-registration
使用的表单,以便我可以在这些视图上添加更多内容?
1 回答
注册表由注册后端提供 . 看看
registration.backends.default.DefaultBackend
.有一个返回
registration.forms.RegistrationForm
类的方法get_form_class(request)
. 您所要做的就是创建一个新的后端,从DefaultBackend
继承并覆盖get_form_class()
方法以返回一个新的表单类 .除了更改注册应用程序的基本行为外,您可以通过提供自定义后端来做任何事情 . 如果您需要以提供custm后端不进行剪切的方式从根本上自定义视图,那么只需创建
authn
或users
应用程序并从django-registration导入任何有用的位 . 例如,您可以将默认模型和管理器保留在registration
app命名空间内,但可以在新应用程序中将自定义后端连接到您自己的内部 .