我一直试图让两个第三方应用程序相互兼容,但由于它们的名称,这对我来说一直没有成功。
我正在尝试让这两个应用程序 django-user-accounts
和 django-allauth
协同工作。问题是,这两个应用程序都使用相同的命名空间“account”,我不明白应该如何修复它们。
我找到了一些类似于 这个 的内容,它们似乎是解决问题的方法,但是当我尝试实现时,遇到了两个问题:
- 对于 django-user-accounts 它似乎没有起到任何作用。
- 对于 django-allauth,有许多位于
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 包。
我该如何解决这个名称冲突并保持所有其他子包和应用程序正常运行?
allauth.urls
文件不可用。按照这种方式,我可能只需将整个应用程序复制到我的项目中。 - PoDuckdjango-user-account
源代码,我认为之前提到的解决方案不起作用的原因很简单,他们从未定义应用程序配置。所以,与其试图覆盖他们的配置,为什么不在你的代码中尝试定义它呢? - Gero