Перенаправление формы сообщения не извлекает ресурс django
Я отправляю POST-запрос к одному из моих представлений через fetch после нажатия на кнопку формы в javascript. POST-запрос разрешается и достигает редиректа, но редирект не переводит соответствующее представление, а страница остается на том же представлении.
Я настроил урлы с представлениями, расставил имена в приложении и в целом не понимаю, где я ошибся, особенно потому, что ресурс действительно возвращается после перенаправления, но просто не отображается.
Вот мой файл urls.py:
from email import policy
from django.urls import path,re_path
from . import views
app_name = 'partyupapp'
urlpatterns = [
path('', views.index, name='home'),
#add create_event paths
path('create_event/', views.create_event, name='create_event'),
path('choose_venue/', views.choose_venue, name='choose_venue'),
]
Вот мой файл views.py:
def create_event(request):
if request.method == 'POST':
# Create form with request data in it
form = PartyEventInfoForm(request.POST)
# Check all validation criteria, is_valid implemented by default via UserCreationForm
if form.is_valid():
# Process data
return redirect('partyupapp:choose_venue')
return render(request, 'PartyUpApp/create_event.html', {'form': form})
else:
form = PartyEventInfoForm()
return render(request, 'PartyUpApp/create_event.html', {'form': form})
def choose_venue(request):
if request.method == 'POST':
own_form = ChooseOwnVenueForm(json.load(request)['data'])
# Check all validation criteria, is_valid implemented by default via UserCreationForm
if own_form.is_valid():
# Process data
return render(request,'PartyUpApp/hire_vendors.html')
return render(request,'PartyUpApp/choose_venue.html', {'own_form': own_form})
else:
print("IN CHOOSE VENUE GET") # this actually gets printed
own_form = ChooseOwnVenueForm()
return render(request,'PartyUpApp/choose_venue.html', {'own_form': own_form})
Вот мой запрос на выборку в js:
nextButton.addEventListener("click", function() {
fetch('/partyup/create_event/', {
method: 'POST',
credentials: 'same-origin',
headers:{
'Content-Type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest',
'X-CSRFToken': csrftoken,
},
body: new URLSearchParams({
'name': form_name.value,
'description': form_description.value,
'start_date': form_start_date.value,
'end_date': form_end_date.value
})
})
})
Как я уже сказал, ответ возвращает HTML-ресурс choose_venue, но страница не перенаправляется на эту страницу.