【发布时间】:2017-08-23 22:48:37
【问题描述】:
我有一个带有 get 和 post 方法的 APIView,其中包含两个名为 tickets_per_day_no_results.html 和 tickets_per_day_results.html 的模板。当我访问 results.html 文件时,我有两个下拉菜单和一个搜索按钮,用于从内部 Web API 获取数据,如下所示:。
当我点击搜索按钮时,我的问题出现了,我最终将结果显示为 APIView(我不希望这些结果,我希望将它们转移到我的 tickets_per_day_results.html 文件)。
这是我现在的代码:
urls.py
from .views import ChartData7
urlpatterns = [
url(r'^$', views.index, name='index'), # home
url(r'^statistics/$', views.statistics, name="statistics"),
url(r'^tickets_per_day_no_results/$', ChartData7.as_view()),
]
Views.py
class ChartData7(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'
if request.method == "POST":
year = request.POST.get('select_year',None)
week = request.POST.get('select_week', None)
....do stuff...
data = {"label_number_days":label_number_days,
"days_of_data": count_of_days,}
return Reponse(data)
return render(request, template_name)
tickets_per_day_no_results
{% block content %}
<h3>Please, select the year and week number to retrieve the data.</h3>
<form id="search_dates" method="POST"> {% 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>
tickets_per_day_results.html
<script>
{% block jquery %}
var endpoint = '/statistics/tickets_per_day_results' //This
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)
}
})
{% 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 %}
我的猜测是我的 urls.py 文件中的 url 有问题,或者我没有以正确的方式发送 ticket_per_day_results.html,因为在我的浏览器的 url 导航中,我没有看到 ticket_per_day_results 网页。我错过了什么?
【问题讨论】:
标签: javascript html django python-3.x django-forms