Как отображать шаблоны django-allauth

Я не мог понять, почему мои шаблоны django-allauth не могут быть отображены. Я скопировал каталог allauth в свой проект. У меня также есть приложение каталога в стиле начальной загрузки, которое должно отображаться после входа в систему. Я ожидаю, что формы регистрации и входа в систему из django-allauth будут отображаться, а после входа в систему впоследствии перенаправляться на рендеринг шаблонов приложений каталога на тему начальной загрузки.

В settings.py, среди других необходимых приложений, я добавил модули django-allauth после приложения-каталога в INSTALLED_APPS.

INSTALLED_APPS=['catalog',
            'allauth',
            'allauth.account',
            'allauth.socialaccount',
]

Добавлены серверные части аутентификации как:

AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth`
    "django.contrib.auth.backends.ModelBackend",
    # `allauth` specific authentication methods, such as login by e-mail
    "allauth.account.auth_backends.AuthenticationBackend"
)

В settings.py каталог шаблонов установлен как:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'allauth/templates/account'),os.path.join(BASE_DIR,'catalog/templates/catalog')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'allauth.account.contextprocessors.account',
                'allauth.socialaccount.contextprocessors.socialaccount',
                'django.template.context_processors.debug',
                'django.template.context_processors.i18n',
                'django.template.context_processors.media',
                'ecomstore.utils.context_processors.ecomstore',
            ],
        },
    },
]

Я разрешаю django-allauth указать URL-адрес для маршрутизации при успешном входе в систему. Добавить LOGIN_REDIRECT_URL = '/'

Установите маршрутизацию URL-адресов в myproject как:

urlpatterns = [
        url(r'^accounts/', include('allauth.urls')),             
    ]

Как указано выше, мой вопрос: почему шаблоны django-allauth не отображаются?


person Kaleab Woldemariam    schedule 14.05.2017    source источник
comment
Можете показать ошибку?   -  person Astik Anand    schedule 14.05.2017
comment
@AstikAnand Сообщений об ошибках нет, за исключением того, что отображаемый шаблон должен быть формами входа и регистрации из django-allauth, а не шаблоном проекта (начальной загрузки), который происходит из приложения-каталога.   -  person Kaleab Woldemariam    schedule 14.05.2017
comment
Возможно, тогда имена шаблонов конфликтуют, попробуйте изменить имя шаблона проекта.   -  person Astik Anand    schedule 14.05.2017


Ответы (1)


Вам не хватает нескольких вещей: в INSTALLED_APPS:

'django.contrib.sites',

После этого добавьте строку с

SITE_ID = 1

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

Allauth также поставляется со своими собственными паролями для входа, выхода и изменения, см. здесь

Если вы переключаете шаблоны, вы можете поместить шаблоны allauth, используя такие теги, как:

{% url 'account_login' %} <!-- Sign In-->

и если вам нужно проверить, вошли ли пользователи в систему, вы можете использовать оператор if

{% if user.is_active %} <!-- checks if user signed in-->
<!-- Insert code here that appears if signed in-->
{% else%}
<!-- Insert code here to display for users that did not sign in-->
{% endif%}

Наконец, шаблоны можно найти здесь, если вам нужно стилизовать их. Но вам нужно создать папку учетных записей и поместить их туда, чтобы переопределить учетные записи по умолчанию.

person ccsv    schedule 23.04.2018