django注册视图自定义
我正在我的一个项目中使用django注册视图自定义,django,django-forms,django-urls,django-registration,Django,Django Forms,Django Urls,Django Registration,我正在我的一个项目中使用django注册(请参阅:)。django注册的标准设置是在urls.py文件中添加下面的代码 (r'^accounts/', include('registration.urls')) 还可以在名为注册的文件夹中自定义模板 上面的代码正在创建指向注册、登录和密码恢复的链接,这很好。但在我的项目中,我通常会向视图中添加一些其他函数,因此如果我只添加include('registration.url'),似乎无法自定义包含这些django注册表的视图 是否有方法在视图中调
django注册
(请参阅:)。django注册的标准设置是在urls.py
文件中添加下面的代码
(r'^accounts/', include('registration.urls'))
还可以在名为注册
的文件夹中自定义模板
上面的代码正在创建指向注册、登录和密码恢复的链接,这很好。但在我的项目中,我通常会向视图中添加一些其他函数,因此如果我只添加include('registration.url')
,似乎无法自定义包含这些django注册表的视图
是否有方法在视图中调用django注册使用的表单,以便我可以在这些视图中添加更多内容?注册表单由注册后端提供。签出
registration.backends.default.DefaultBackend
有一个方法get\u form\u class(request)
返回registration.forms.RegistrationForm
类。您所要做的就是创建一个新的后端,从DefaultBackend
继承并重写get\u form\u class()
方法以返回一个新的表单类
通过提供自定义后端,除了更改注册应用程序的基本行为之外,您几乎可以做任何事情。如果您需要以一种提供custm后端不会产生影响的方式从根本上自定义视图,那么只需创建一个
authn
或users
应用程序,并从django注册中导入您认为有用的任何位。比如说,您可以将默认模型和管理器保留在注册
应用程序名称空间中,但将自定义后端连接到新应用程序中您自己的内部。如果我理解正确,您希望自定义注册表单,如果是这样,那么只需从应用程序中的存储库中复制代码,并在模块中进行必要的更改……如果没有达到要求,请回复。我不需要自定义表单,我只需要将它们放在我想要创建的视图中。例如,当我显示注册表时,我还希望添加一个自定义功能(在同一视图中),该功能将执行某种类型的跟踪。如果我没有要求太多,请您提供一个真实的示例。比如说,如果我想将注册从,或者登录表单放在一个我想创建的视图中,我该如何做呢?我不想自定义表单本身,我只想在其周围添加一些函数,这样当调用我的视图时,我的函数将与注册表或其他身份验证表单一起显示。非常感谢。我当然可以。在这里,我删除了一个gist(),将注册后端合并到一个基于类的视图中(一个更极端的例子)。每个注册流程的大多数通用内容都在注册配置文件
管理器中定义。您会注意到,我使用的是django注册中提供的模型和管理器,但我提供了自己的行为。后端的API相当灵活,因此您可以通过截取信号并提供类MyBackend(DefaultBackend):
来实现大部分功能,但这只是为了说明还有什么其他可能。