2017-02-14 22 views
1

У меня возникают проблемы при добавлении приложения сторонних пользователей к проекту Wagtail.Проект Django Wagtail - конфликт с django.contrib.sites (с использованием django-allauth)

Большинство сторонних приложений учетной записи пользователя (например, django-alluth) требуют django.contrib.sites как зависимости.

Когда я включаю зависимости django-allauth (включая требуемые django.contrib.sites) в INSTALLED_APPS вместе с приложением wagtail.wagtailsite, я запускаю проблемы с правильной загрузкой сайта (статические файлы не загружаются правильно, например). Я не могу точно определить, что неправильно загружается, но из того, что я могу сказать, это конфликт времени между приложением wagtail и сайтом django.

Кажется, должен быть способ иметь трясогузку и джанго-алтауты, бегущие бок о бок ... Есть ли у кого-нибудь джанго-алют и трясогузная работа? Возможно ли и что вам нужно сделать?

Приветствуются любые советы или примеры совместных действий джанго-алюта и трясогузки.

Версии: Django 1.10.1, трясогузка 1,8

EDIT:

Хорошо, я обнаружил, почему мои статические файлы правильно не загружается, когда у меня есть все зависимости Джанго-allauth в место. Похоже, что мой файл base.html проектов, который обычно вызывается, заменяется baste.html в пакете allauth. Мне нужно запретить вызов файла django-allauth base.html. Вот Джанго-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> 

Я буду смотреть в том, как исправить это сейчас. Если вы знаете, как это было бы приемлемым ответом :)

ответ

1

Решение этой проблемы было включить эти INSTALLED_APPS после моего проекта конкретных приложений:

... 
'myApp1' 
... 
'allauth', 
'allauth.account', 
'allauth.socialaccount', 

Это помешало allauth base.html от использования, и мой «myApp1» base.html загрузки правильно.

Я не знал, что порядок INSTALLED_APPS влияет на поведение загрузки.

Спасибо.

+0

'INSTALLED_APPS' порядок важен для поиска шаблонов, если в' TEMPLATES' включен 'APP_DIRS'. Django будет проходить через приложения, пока не найдет шаблон, который соответствует. Вот почему в моем примере у меня есть AUTH_APPS. Хороший улов! – FlipperPA

1

У меня как работает вместе успешно. Вот отрывок из моего файла требования:

Django>=1.10,<1.11 
django-allauth==0.27.0 
wagtail>=1.8,<1.9 

Вот как я обработки установленных приложений:

PREREQ_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.humanize', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    ... 
] 

AUTH_APPS = [ 
    'django.contrib.sites', 
    'allauth', 
    'allauth.account', 
    'allauth.socialaccount', 
    'allauth.socialaccount.providers.facebook', 
    'allauth.socialaccount.providers.google', 
    'allauth.socialaccount.providers.twitter', 
] 

SITE_ID = 1 

WAGTAIL_APPS = [ 
    'wagtail.wagtailcore', 
    'wagtail.wagtailadmin', 
    'wagtail.wagtaildocs', 
    'wagtail.wagtailsnippets', 
    'wagtail.wagtailusers', 
    'wagtail.wagtailimages', 
    'wagtail.wagtailembeds', 
    'wagtail.wagtailsearch', 
    'wagtail.wagtailsites', 
    'wagtail.wagtailredirects', 
    'wagtail.wagtailforms', 
    'wagtail.contrib.modeladmin', 
    'wagtail.contrib.table_block', 

    'wagtailfontawesome', 
    'wagtailerrorpages', 
    'wagtailgridder', 
    'taggit', 
    'modelcluster', 
] 

PROJECT_APPS = [ 
    ... 
] 

INSTALLED_APPS = PREREQ_APPS + WAGTAIL_APPS + PROJECT_APPS + AUTH_APPS 

Middleware:

# 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/"), 
) 

Надеюсь, это поможет; есть ли что-нибудь из вашей настройки, о которой вы можете быть более конкретным? Возможно, вы можете поделиться своим файлом настроек?

+0

Спасибо! Я сравню это с моей установкой в ​​ближайшие пару дней и вернусь к вам ... как можно скорее с более подробной информацией. – SecretSasquatch

+0

См. Отредактированный вопрос. Я нашел источник проблемы ... – SecretSasquatch