Почему запрос get не достигает представления?
Я принимаю запрос редиректа от скрытого ввода тега get, но он не доходит, я час сидел в отладке и смотрел на код, пытался что-то исправить, но вроде все правильно, помогите пожалуйста!
def login(request):
if request.method == 'POST':
form = UserLoginForm(data=request.POST)
if form.is_valid():
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user:
auth.login(request, user)
messages.success(request, f"{username}, Вы вошли в аккаунт")
if request.data.get('next', None):
return HttpResponseRedirect(request.data.get('next'))
return HttpResponseRedirect(reverse('main:index'))
else:
form = UserLoginForm()
<form action="{% url "users:profile" %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% if request.GET.next %}
<input type="hidden" name="next" value={{ request.GET.next }}>
{% endif %}
<div class="row">
<div class="col-md-12 mb-3 text-center">
{% if user.image %}
<img src="{{ user.image.url }}"
alt="Аватар пользователя" class="img-fluid rounded-circle"
style="max-width: 200px;">
{% else %}
<img src="{% static "deps/images/baseavatar.jpg" %}"
alt="Аватар пользователя" class="img-fluid rounded-circle"
style="max-width: 150px;">
{% endif %}
<input type="file" class="form-control mt-3" id="id_image"
name="image"
accept="image/*">
{% if form.image.errors %}
<div class="alert alert-danger alert-dismissible fade show">{{ form.image.errors }}</div>
{% endif %}
форма
запрос
<Пользователь: wicki>
имя пользователя
'wicki'
Вот ссылка с запросом на получение, которая должна перенаправить на профиль после отправки запроса на почту http://127.0.0.1:8000/user/login/?next=/user/profile/
Похоже, что проблема может заключаться в том, как вы передаете следующий параметр в форме отправки и как вы обращаетесь к нему в представлении. Давайте убедимся, что мы правильно передаем его и правильно обращаемся к нему в представлении.
Сначала давайте обновим вашу форму, чтобы следующий параметр передавался правильно:
<form action="{% url 'users:profile' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% if request.GET.next %}
<input type="hidden" name="next" value="{{ request.GET.next }}">
{% endif %}
<!-- Your other form fields -->
Код функции альтера в этой строке
if user:
auth.login(request, user)
messages.success(request, f"{username}, Вы вошли в аккаунт")
next_url = request.POST.get('next') # Get the 'next' parameter from the POST request
if next_url:
return redirect(next_url)
return redirect('main:index')