Загрузка тега provider_login_url на моей странице входа в систему
Я пытаюсь настроить all-auth в моем проекте django и после нажатия на кнопку входа в систему я настроил все в бэкенде
Я получаю следующую ошибку в строке 95
TypeError at /accounts/login/
string indices must be integers
95 <a class="google-btn" href="{% provider_login_url 'google' %}>
Я загрузил
{% load socialaccount %}
и вот эта кнопка:
<a class="google-btn" href="{% provider_login_url 'google' %}>
Log in with Google
</a>
в settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Fashion',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google'
]
Попробовал загрузить тег на другой странице, та же ошибка
Похоже, что в коде вашего шаблона для кнопки входа в Google допущена синтаксическая ошибка. В атрибуте href тега якоря отсутствует закрывающая кавычка. Вот исправленный код:
<a class="google-btn" href="{% provider_login_url 'google' %}">
Log in with Google
</a>
Дополнительно убедитесь, что вы правильно настроили параметры и URL-адреса для allauth. Вот несколько моментов, которые необходимо проверить.
- Убедитесь, что параметры
INSTALLED_APPSиSOCIALACCOUNT_PROVIDERSправильно настроены.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Fashion',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
]
SITE_ID = 1
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
}
}
}
- Убедитесь, что вы запустили миграции для приложения
allauth.
python manage.py migrate
- Убедитесь, что вы включили URL-адреса
allauthвurls.py.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
]
Иногда изменения требуют перезапуска сервера. Убедитесь, что вы перезапустили свой сервер разработки Django.
python manage.py runserver