Django第三方应用名称冲突

时间:2017-10-18 00:15:33

标签: python django django-allauth pinax

我一直试图让两个第三方应用程序在一起玩得很好,而且由于他们的名字,它并没有为我工作。

我尝试使用的两个应用是django-user-accountsdjango-allauth。问题是,两个应用程序使用相同的命名空间“帐户”,我不明白我应该修复它们的方式。

我确实找到了this之类的东西,这似乎是修复它的方法,但是当我尝试实现它时,我有两个问题。

  1. django-user-accounts似乎没有做任何事情。
  2. 使用django-allauth,allauth包下面有许多不同的应用程序,为了获取它的帐户应用程序文件夹,我还必须首先创建allauth文件夹,这使得其他应用程序无法访问。
  3. 这是我到目前为止所拥有的。

    在我的项目文件夹下,我创建了这个结构:

    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包。

    如何解决此命名冲突并保持所有其他子包和应用程序正常工作?

0 个答案:

没有答案