我在将第三方“用户帐户”应用程序添加到W project项目时遇到了问题。Django W Project项目 - 与django.contrib.sites冲突(使用django-allauth)
大多数第三方用户帐户应用程序(如django-alluth)需要将django.contrib.sites作为依赖项。
当我在INSTALLED_APPS和wagtail.wagtailsite应用程序中包含django-allauth依赖项(包括必需的django.contrib.sites)时,我遇到了正确加载站点的问题(静态文件加载不正确,例如)。我无法准确追踪哪些内容不能正确加载,但从我所知道的情况来看,这是w''网站'应用程序与django'网站'应用程序之间的运行时冲突。
似乎应该有一种方法让w and和django-allauth并行运行......有没有人有django-alluth和w working一起工作很好?这是可能的吗?你需要做什么?
django-alluth和W working一起工作的任何提示或示例非常感谢。
版本: Django的1.10.1, 鹡鸰1.8
编辑:
好吧,我发现为什么我的静态文件没有正确加载,当我把所有的Django的allauth依赖地点。它看起来像我的项目base.html文件,通常被称为被allauth包中的baste.html取代。我需要防止调用django-allauth base.html文件。这里是覆盖我通常的html部分的django-allauth base.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>
我现在来看看如何解决这个问题。如果你知道如何,这将是一个可以接受的答案:)
如果您在'TEMPLATES'中启用了'APP_DIRS',则'INSTALLED_APPS'顺序对于查找模板非常重要。 Django将按顺序遍历这些应用程序,直到找到匹配的模板。这就是为什么我在我的例子中最后列出了'AUTH_APPS'的原因。接得好! – FlipperPA