Кажется, это действительно простая проблема, но я не могу заставить ее работать.Регистрация django будет проходить в правильном ?next=.....
, если в конкретной функции просмотра присутствует декоратор @login_required
.Как только пользователь войдет в систему, он будет перенаправлен на страницу, которую он хотел посмотреть.Это хорошо и работает правильно.
Моя проблема в том, что у меня есть HTML-страница, которая не требует входа, но если вы хотите войти, у меня есть <a href='{% url auth_login>
подарок.Если пользователь входит в систему с помощью этого html-файла, ?next=
показывает пробел и перенаправляется в местоположение по умолчанию accounts/profile/
.Я еще не настроил профиль пользователя, поэтому я получаю ошибку TemplateDoesNotExist
.
У меня есть что-то вроде этого:
views.py
...
def display_all(request):
response = list_detail.object_list(
request,
queryset = MyModel.objects.all(),
template_name = 'show_all.html'
)
return response
-
show_all.html
<html>
<head>
<title> Display Everything </title>
</head>
<body>
<a href='{% url auth_login %}?next={{ request.path }}'>Login</a>
<h1> Displaying all items! </h1>
<ul>
{% for item in object_list %}
<li> {{ item.name }} </li>
{% endfor %}
</ul>
</body>
</html>
Здесь я отображаю все, перечисляя его, и у меня есть ссылка для входа вверху, еслиВы хотите войти в систему. {{ request.path }}
возвращает пустую строку, поэтому я получаю конечный результат http://localhost:8000/accounts/login/?next=
, который будет перенаправлен на значение по умолчанию accounts/profile/
.