我所試圖做的模板:Django的:使基於請求數據與基於類的意見
產生一些默認輸入日期值頁面,並基於這些值的一些數據。 當選擇新的數據值時,我們生成更新的數據。
我正在使用基於類的視圖考慮應用程序的結構,我想擴展。
什麼不工作:
模板被渲染,但我不能動態獲取「開始」和「結束」的值來生成更新的數據。
我的問題:
是這樣的結構正確,邏輯在Django的標準實踐方面?你能指出我的代碼不正確嗎?
我的問題是關於這個topic。但是我想在視圖中保留所有邏輯。
非常感謝。
下面是一個簡化的位代碼:
的index.html
{% extends "base.html" %}
{% block main %}
{% include "_usage.html" %}
{{ generated_data }}
{{ table.render }}
{% endblock %}
_usage.html
<div class="name">
<span>From: <input id="id_start" name="start" type="text" value="{{ start }}"></span>
<span>To: <input id="id_end" name="end" type="text" value="{{ end }}"</span>
<button class="name" type="submit">Submit</button>
</div>
urls.py
urlpatterns = patterns('',
url(r'^$', GenericView.as_view(), name='index'),
)
views.py
from django.views.generic.base import View
from django.template.response import TemplateResponse
class UsageView(View):
template_name = '_usage.html'
default_start = '2014-01-01'
default_end = '2014-01-02'
def get(self, request):
data_dict = {'start': self.default_start, 'end': self.default_end}
response = TemplateResponse(request, self.template_name, data_dict)
return response
class GenericView(UsageView):
template_name = 'index.html'
def get(self, request):
super(GenericView, self).get(request)
start_value = request.GET['start']
end_value = request.GET['end']
values = '1, 2, 3'
data_dict = {'start': start_value, 'end': end_value, 'generated_data': values}
response = TemplateResponse(request, self.template_name, data_dict)
return response
'_usage.html'如何工作?它似乎沒有任何HTML表單。 – arocks
對不起,不清楚。我更新了我的問題。有一個我擴展的base.html文件。它具有基本html頁面生成所需的所有html代碼。 – Andrew