Python Django Wagtail项目-与Django.contrib.sites冲突(使用Django allauth)

Python Django Wagtail项目-与Django.contrib.sites冲突(使用Django allauth),python,django,django-allauth,wagtail,sites,Python,Django,Django Allauth,Wagtail,Sites,我在向Wagtail项目添加第三方“用户帐户”应用程序时遇到问题 大多数第三方用户帐户应用程序(如django alluth)需要依赖django.contrib.sites 当我将django-allauth依赖项(包括所需的django.contrib.sites)与wagtail.wagtailsite应用一起包含在已安装的_应用程序中时,我会遇到站点正确加载的问题(例如,静态文件无法正确加载)。我无法准确追踪哪些内容没有正确加载,但据我所知,这是wagtail“站点”应用程序和djang

我在向Wagtail项目添加第三方“用户帐户”应用程序时遇到问题

大多数第三方用户帐户应用程序(如django alluth)需要依赖django.contrib.sites

当我将django-allauth依赖项(包括所需的django.contrib.sites)与wagtail.wagtailsite应用一起包含在已安装的_应用程序中时,我会遇到站点正确加载的问题(例如,静态文件无法正确加载)。我无法准确追踪哪些内容没有正确加载,但据我所知,这是wagtail“站点”应用程序和django“站点”应用程序之间的运行时冲突

似乎应该有办法让wagtail和django allauth并排运行。。。有没有人让django alluth和wagtail配合得很好?有可能吗?你需要做什么

非常感谢django alluth和Wagtail合作的任何提示或示例

版本: Django 1.10.1, 摇尾1.8

编辑:

好的,我发现了为什么我的静态文件在所有django-allauth依赖项都就绪的情况下无法正确加载。看起来通常被调用的myprojects base.html文件正在被allauth包中的baste.html文件所取代。我需要阻止调用django allauth base.html文件。下面是django allauth base.html,它正在覆盖我常用的html部分:

 <!DOCTYPE html>
<html>
  <head>
    <title>{% block head_title %}{% endblock %}</title>
    {% block extra_head %}
    {% endblock %}
  </head>
  <body>
    {% block body %}

    {% if messages %}
    <div>
      <strong>Messages:</strong>
      <ul>
    {% for message in messages %}
    <li>{{message}}</li>
    {% endfor %}
      </ul>
    </div>
    {% endif %}

    <div>
      <strong>Menu:</strong>
      <ul>
    {% if user.is_authenticated %}
    <li><a href="{% url 'account_email' %}">Change E-mail</a></li>
    <li><a href="{% url 'account_logout' %}">Sign Out</a></li>
    {% else %}
    <li><a href="{% url 'account_login' %}">Sign In</a></li>
    <li><a href="{% url 'account_signup' %}">Sign Up</a></li>
    {% endif %}
      </ul>
    </div>
    {% block content %}
    {% endblock %}
    {% endblock %}
    {% block extra_body %}
    {% endblock %}
  </body>
</html>

{%block head_title%}{%endblock%}
{%block extra_head%}
{%endblock%}
{%block body%}
{%if消息%}
消息:
    {消息%中的消息为%s}
  • {{message}}
  • {%endfor%}
{%endif%} 菜单:
    {%if user.u经过身份验证%}
  • {%else%}
  • {%endif%}
{%block content%} {%endblock%} {%endblock%} {%block extra_body%} {%endblock%}

我现在要研究如何解决这个问题。如果你知道怎么做,那将是一个可以接受的答案:)

我已经成功地将两者结合在一起。以下是我的需求文件的一个片段:

Django>=1.10,<1.11
django-allauth==0.27.0
wagtail>=1.8,<1.9
中间件:

# Middleware
MIDDLEWARE_CLASSES = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',

    'wagtail.wagtailcore.middleware.SiteMiddleware',
    'wagtail.wagtailredirects.middleware.RedirectMiddleware',
]
和静态文件:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static/"),
)

希望这有帮助;您的设置中有什么可以更具体地说明的吗?可能正在共享您的设置文件?

此问题的解决方案是在我的项目特定应用程序之后包括这些已安装的应用程序:

...
'myApp1'
...
'allauth',
'allauth.account',
'allauth.socialaccount',
这阻止了allauth base.html的使用,也阻止了我的“myApp1”base.html的正确加载

我没有意识到安装的应用程序的顺序会影响加载行为


谢谢。

谢谢!我会在接下来的几天内将其与我的设置进行比较,然后再与您联系。。。请尽快提供更多详细信息。
已安装的应用程序
如果在
模板
中启用了
应用程序目录
,则查找模板的顺序非常重要。Django将按顺序浏览应用程序,直到找到匹配的模板。这就是为什么在我的示例中最后列出了
AUTH_APPS
。抢手货
...
'myApp1'
...
'allauth',
'allauth.account',
'allauth.socialaccount',