Настроенный сайт для входа не отображается в Django
Я создал Django App и хочу предоставить пользовательскую страницу входа с возможностью использовать только логин Google.
Я реализовал вход в Google на основе этого сообщения: https://www.section.io/engineering-education/django-google-oauth/. Это действительно работает хорошо, и когда я нажимаю localhost/account/login, я получаю страницу входа:
На самом деле мне не нужна регистрация и "локальный" вход, мне нужен только логин Google.
Для достижения этой цели я создал следующую структуру папок, чтобы перезаписать шаблон входа (основанный на https://learndjango.com/tutorials/django-login-and-logout-tutorial): MyApp/templaltes/registration/login.html
login.html имеет следующее содержание:
{% extends "base.html" %}
{% load i18n %}
{% load socialaccount %}
{% block content %}
<div class="row">
<center><h1>{% trans 'LoginHeading' %}</h1></center>
</div>
{% if user.is_authenticated %}
<p>Welcome, You are logged in as {{ user.username }}</p>
{% else %}
<a href="{% provider_login_url 'google' %}">Login With Google</a>
{% endif %}
{% endblock %}
Я также добавил 'DIRS': [str(BASE_DIR.joinpath('templates'))] в раздел TEMPLATES в settings.py.
К сожалению, я все еще вижу стандартную страницу входа в Django. Что я упускаю?
(я также перезапустил сервер dev, чтобы убедиться, что это не проблема, с тем же результатом)
Я разобрался с этим. После внимательного прочтения документации Allauth я обнаружил следующее:
Например, представление, соответствующее URL-адресу account_login, использует шаблон account/login.html. Если вы создадите файл с таким именем в вашей схеме кода, он может перекрыть тот, который поставляется с allauth.
.
Поэтому я изменил структуру папок на account/login.html и он работает.