4

我在我的一个项目中使用django-registration(参见:https ://bitbucket.org/ubernostrum/django-registration )。django-registration 的标准设置是在urls.py文件中添加以下代码

(r'^accounts/', include('registration.urls'))

并自定义名为registration.

上面的代码正在创建指向注册、登录和密码恢复的链接,这很好。但是在我的项目中,我通常会添加一些其他功能到我的视图中,所以如果我只是添加include('registration.urls')它,我似乎无法自定义包含那些 django 注册表单的视图。

有没有办法调用视图中使用的表单,django-registration以便我可以在这些视图上添加更多内容?

4

1 回答 1

6

注册表单由注册后台提供。退房registration.backends.default.DefaultBackend

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

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

于 2011-02-09T13:29:04.580 回答