Ajax-вызов запускается при отправке формы и будет передавать данные в отдельный шаблон views.py

Я создаю веб-приложение с использованием Django. У меня есть функция поиска на моей индексной странице. Когда пользователь отправляет форму, должен быть выполнен вызов AJAX. Этот AJAX вызов должен взять все необходимые данные из формы и передать их в совершенно отдельный шаблон views.py, который будет делать API GET запросы, используя эти данные, и создавать новую страницу, используя этот отдельный шаблон.

На данный момент он не загружает отдельный шаблон views.py, я не уверен, правильно ли я передаю данные, однако я вижу /searchresults?searchType=data1&executeLocation=data2 в моей консоли, потому что мой AJAX вызов возвращается на success в настоящее время. Можно предположить, что у меня есть все необходимые данные в переменных data1 и data2, мне просто нужна помощь в перенаправлении на новую страницу и передаче данных вместе с перенаправлением.

Мой код:

urls.py

 # The home page
 path('', views.index, name='home'),
 # Search results page
 path('searchresults', views.search_results, name='searchresults'),

AJAX

function getSearchResults(searchType,executeLocation,csrf_token) 
{
    $.ajax(
    {
        type: $(this).attr('method'),
        url: "searchresults", //The URL you defined in urls.py
        data : 
        {
            searchType: searchType,
            executeLocation: executeLocation,
            csrfmiddlewaretoken: csrf_token
        },
        dataType: 'text',
        success: function(response) // currently executes success (but not correct outcome)
        {
            console.log(response);
            alert('winner winner chicken dinner');
        },
        error: function(response)
        {
            console.log(response);
            alert('failure');
        }
    }).done(function(data)
    {
        console.log(data)
    });
}

index.html

<form method="POST" action="{% url 'searchresults'%}">
...
<button type="submit" onclick="getSearchResults('data1','data2','{{csrf_token}}')">Submit</button>
</form>

views.py

def search_results(request):
    context = {}
    context['requestData'] = request.POST
    html_template = loader.get_template('search/searchresults.html')
    return HttpResponseRedirect(html_template.render(context, request))

Приемлемое решение должно быть способно выполнять следующие задачи:

  1. Перенаправить пользователя на страницу результатов поиска
  2. Передать данные формы на страницу результатов поиска каким-либо образом

После помощи @AminMir я смог получить рабочее решение. Оказалось, что мне не нужен AJAX, но мне нужен файл forms.py.

view.py

def index(request):
    context = {'segment': 'index'}
    context['SearchForm'] = SearchForm()
    return HttpResponse(html_template.render(context, request))

forms.py

from django import forms

class SearchForm(forms.Form):
    searchType = forms.CharField(max_length = 100)
    executedLocation = forms.CharField(max_length = 100)
    searchValue = forms.CharField(max_length = 100)

index.html

<form method="POST" action="{% url 'searchresults'%}">
  {% csrf_token %}
  {{ SearchForm.as_ul }}
  <input type="submit" value="submit">Search</button>
</form>

Затем эта форма отправит мои данные в файл views.py для страницы search_result, которая останется без изменений

Вернуться на верх