Я использую login.html, предоставленный в django.auth (по умолчанию он находится в шаблонах / registration / login.html, верно?) Вот login.html:
<!-- templates/registration/login.html -->
{% extends 'base.html' %}
{% block title %}Login{% endblock %}
{% block content %}
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
{% endblock %}
Обратите внимание, что я не уведомляллюбая информация (например, user.username) для передачи на следующий URL.Я изменяю LOGIN_REDIRECT_URL на URL-адрес в приложении:
app_name = 'ride'
urlpatterns = [
path('', views.home, name='home'),
]
Обратите внимание, что в URL-адресе еще нет.Затем он перейдет к views.py:
def home(request):
return render(request,'ride/home.html')
И есть только объект запроса для передачи в шаблон.А вот поездка / home.html:
<!-- ride/templates/ride/home.html -->
{% extends 'ride/base.html' %}
{% block title %}HOmeeeeeeeeeee {% endblock %}
{% block content %}
{% if user.is_authenticated %}
Hi {{ user.username }}
{% else %}
<p>Welcome to CJ & XY's Ride Sharing Service!</p>
<a href="{% url 'login' %}">login</a> |
<a href="{% url 'login:signup' %}">signup</a>
{% endif %}
{% endblock %}
Я использую user.username в этом шаблоне, и он отлично отображается.
Итак, мой вопрос, как этот окончательный шаблон узнает, какой пользовательпроходит аутентификацию и имя пользователя какого пользователя?Потому что с самого начала я не передавал какую-либо информацию о пользователе, такую как user.id или что-то еще при перенаправлении, URL-адресах и просмотрах.Это так волшебно.
Может кто-нибудь дать мне ключ?Спасибо!