首页 文章

django-registration视图定制

提问于
浏览
4

我正在我的一个项目中使用 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 回答

  • 6

    注册表由注册后端提供 . 看看 registration.backends.default.DefaultBackend .

    有一个返回 registration.forms.RegistrationForm 类的方法 get_form_class(request) . 您所要做的就是创建一个新的后端,从 DefaultBackend 继承并覆盖 get_form_class() 方法以返回一个新的表单类 .

    除了更改注册应用程序的基本行为外,您可以通过提供自定义后端来做任何事情 . 如果您需要以提供custm后端不进行剪切的方式从根本上自定义视图,那么只需创建 authnusers 应用程序并从django-registration导入任何有用的位 . 例如,您可以将默认模型和管理器保留在 registration app命名空间内,但可以在新应用程序中将自定义后端连接到您自己的内部 .

相关问题