Шаблон Django не отображает результаты в браузере

64
9

У меня есть два шаблона Django, которые зависят друг от друга, то есть после того, как я попал в submit в форме моего первого шаблона, мне нужно перенаправить, чтобы увидеть результаты во втором шаблоне, но я столкнулся с ошибкой: NoReverseMatch at/tickets_per_day_results/ where tickets_per_day_results это шаблон, который должен отображать результаты.

формы

class DropDownMenuForm(forms.Form):
week = forms.ChoiceField(choices=[(x,x) for x in range (1,53)])
year = forms.ChoiceField(choices=[(x,x) for x in range (2016,2021)])

Views.py

class ChartData8(APIView):

def get(self, request):
template_name = 'personal_website/tickets_per_day_no_results.html'
form = DropDownMenuForm()
return render(request, template_name, {'form': form})

def post(self, request):
template_name = 'personal_website/tickets_per_day_results.html'
#print(template_name)
if request.method == "POST":
year = request.POST.get('select_year', None)
week = request.POST.get('select_week', None)
... do stuff ....
return render(request, template_name, data)

urls.py

url(r'^tickets_per_day_no_results/$', ChartData8.as_view()),
url(r'^tickets_per_day_results/$', ChartData8.as_view()),

Шаблон 1: tickets_per_day_no_results: Это первый шаблон, в котором вы выбираете свои параметры из раскрывающихся меню. Я предполагаю, что действие ко второму шаблону вызывает проблему.

{% extends "personal_website/header.html"%}
{% block content %}
<h3>Please, select the year and week number to retrieve the data.</h3>
<form id="search_dates" method="POST" action="/tickets_per_day_results/"> {% csrf_token %}
<h6>Select year</h6>

<div class="row">
<div class="col-sm-8">
<select name="select_year">
<option value = {{form.year}}></option>
</select>
</div>
<div class="col-sm-8">
<h6>Select week</h6>
<select name="select_week">
<option value= {{form.week}}></option>
</select>
<button type="submit">Search</button>
</div>
</div>
</div>

Шаблон 2: tickets_per_day_results: Это второй шаблон, где вы должны увидеть результаты.

<script>
{% block jquery %}

var endpoint = '/tickets_per_day_results'

var days_of_data = []
var label_number_days = []

$.ajax({
method: "POST",
url: endpoint,
dataType: 'json',
success: function(data){
console.log(data)
label_number_days = data.label_number_days
days_of_data = data.days_of_data
setChart()

},
error: function(error_data){
console.log("error on data")
console.log(error_data)
}
})
function setGraph(){....}
{% endblock %}
</script>

{% block content %}

<div class ='row'>
<div class="col-sm-12" url-endpoint='{% url "tickets_per_day_results" %}'>
<div>
<canvas id="tickets_per_day" width="800" height="500"></canvas>
</div>
</div>
</div>

{% endblock content %}

Как я могу исправить эту проблему, чтобы увидеть результаты во втором шаблоне в своем браузере?

спросил(а) 2020-03-25T18:59:54+03:00 1 неделя, 4 дня назад
1
Решение
73

Это определено в каком-то приложении или что-то в этом роде? Является ли ссылка полностью указанной в форме? "/Tickets_per_day_results/". Может быть, вам не хватает суффикса url, связанного с приложением, о котором вы упоминаете в корневой urls.py. Может быть, "something_here/tickets_per_day_results/".

ответил(а) 2020-03-25T19:14:52.360207+03:00 1 неделя, 4 дня назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема