我一直试图让两个第三方应用程序在一起玩得很好,而且由于他们的名字,它并没有为我工作。
我尝试使用的两个应用是django-user-accounts
和django-allauth
。问题是,两个应用程序使用相同的命名空间“帐户”,我不明白我应该修复它们的方式。
我确实找到了this之类的东西,这似乎是修复它的方法,但是当我尝试实现它时,我有两个问题。
allauth
包下面有许多不同的应用程序,为了获取它的帐户应用程序文件夹,我还必须首先创建allauth
文件夹,这使得其他应用程序无法访问。这是我到目前为止所拥有的。
在我的项目文件夹下,我创建了这个结构:
allauth
├── account
│ ├── apps.py
│ └── __init__.py
└── __init__.py
在allauth.account.__init__
中,我有:
from django.apps import AppConfig
default_app_config = 'allauth.account.apps.CustomAccountAppConfig'
在allauth.account.apps
我有:
from django.apps import AppConfig
class CustomAccountAppConfig(AppConfig):
verbose_name = 'custom account'
name = "allauth.account"
label = "custom_account"
def __init__(self, app_name, app_module):
AppConfig.__init__(self,app_name, app_module)
这似乎解决了与名称的冲突,但我得到了ImportError: No module named 'allauth.socialaccount'
,因为它已经覆盖了allauth包。
如何解决此命名冲突并保持所有其他子包和应用程序正常工作?