在 Django 项目中结合 django-authtools 和 django-allauth

combining django-authtools and django-allauth in a Django project

我有一个集成了 allauth 的 Django (1.8) 项目。现在我想要一个自定义用户模型而不是 auth.user 模型(我知道这是可配置的,但我需要更大的灵活性)。当我按照 django-authtools 安装说明进行操作时,第一步是将以下行添加到 url-patterns,请参阅 https://django-authtools.readthedocs.org/en/latest/intro.html#installation

url(r'^accounts/', include('authtools.urls')),

然而,这个 URL 模式已经被 allauth 应用程序采用(根据其说明,请参阅 http://django-allauth.readthedocs.org/en/latest/installation.html ):

url(r'^accounts/', include('allauth.urls')),

那么我该如何进行呢?

什么 URL 包含额外的模式并不重要,您可以为 allauth 和 authtools 更改 URL,因为 URL 没有在任何地方硬编码,这些应用程序会在需要时自动将其撤消。例如,您可以使用:

url(r'^auth/', include('authtools.urls')),
url(r'^accounts/', include('allauth.urls')),

你也可以在一个 url 前缀上包含两个模式组,但是如果有冲突(例如 allauth 和 authtools 注册 `accounts/login/' URL),django将为 urlconf.

中的第一个条目提供视图