Django повторно отправляет пустую форму после успешного заполнения

Я новичок в Django и пытаюсь сделать сайт, где после того, как пользователь вводит начальную и конечную дату, выполняется некоторая обработка данных, а затем выводится результат. У меня это работает, но после того, как форма успешно завершается и отображает данные, на сервере запускаются новые POST и GET запросы, которые не находят никаких данных. Это вызывает у меня проблемы с другой формой в том же проекте.

Я думаю, что мне может понадобиться использовать редирект, чтобы избежать двойного заполнения формы? Однако я пытаюсь обработать данные с помощью запроса post и отобразить их, и, насколько я понимаю, перенаправление приведет пользователя к новому url и не передаст обработанные данные вместе с ним.

Заранее спасибо!

Вот часть моего index.html

<div class="search-container">
    <form action="{% url 'get_data' %}" method="post">
      {% csrf_token %}
      {{ timeform}}
      <input type="Submit" name="submit" value="Submit"/>
      
    </form>

А вот мой файл forms.py

    from django import forms
    
    
    class PickTimesForm(forms.Form):
        start_date = forms.CharField()
        end_date = forms.CharField()

и вот views.py

def plot_data(request):
    context={}
    trackform = PickTrackForm()
    context["trackform"]=trackform

    if request.method == 'POST':
        timeform = PickTimesForm(request.POST)
        if timeform.is_valid():
            target_directory= '/home/bitnami/htdocs/projects/laserviz/data/'
            start_date = timeform.cleaned_data.get("start_date")
            end_date = timeform.cleaned_data.get("end_date")
            
            [data,lats,lons] = tf.getTracks(start_date,end_date,target_directory)
            [fig_html, track_info]= tf.makeMap(lons,lats)
            
            context["figure"]=fig_html
            context["track_info"]=track_info
            context["timeform"]=timeform
            context["start_date"]=start_date
            context["end_date"]=end_date
            context["data"]=data

            return render(request,'index.html',context)
    else:
        timeform = PickTimesForm()
        context['timeform']=timeform
    return render(request,'index.html',context)
Вернуться на верх