【发布时间】:2014-02-18 10:10:15
【问题描述】:
我想做的事:
使用一些默认输入日期值生成页面并根据这些值生成一些数据。 选择新的数据值时,我们会生成更新的数据。
考虑到我想扩展的应用程序结构,我正在使用基于类的视图。
什么不起作用:
模板已渲染,但我无法动态获取“开始”和“结束”的值来生成更新的数据。
我的问题:
就 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 表单。 -
抱歉,不清楚。我更新了我的问题。我扩展了一个 base.html 文件。它具有生成基本 html 页面所需的所有 html 代码。
标签: django django-views