我在將第三方「用戶帳戶」應用程序添加到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