将变量从Django中的下拉列表传递到模板
我有一个正在Django中进行的小项目(仍在学习它和Python),对于在Django中传递变量有一些疑问 例如,用户输入一些数据,项目对其进行处理,然后计算一些简单的统计数据。我想通过下拉按钮传递一个“年”变量,这样用户就可以选择应该生成报告的年份 代码的某些部分: Models.py:将变量从Django中的下拉列表传递到模板,django,templates,variables,drop-down-menu,views,Django,Templates,Variables,Drop Down Menu,Views,我有一个正在Django中进行的小项目(仍在学习它和Python),对于在Django中传递变量有一些疑问 例如,用户输入一些数据,项目对其进行处理,然后计算一些简单的统计数据。我想通过下拉按钮传递一个“年”变量,这样用户就可以选择应该生成报告的年份 代码的某些部分: Models.py: class Fms(models.Model): ... date = models.DateField() department = models.CharField(max_length=255, ver
class Fms(models.Model):
...
date = models.DateField()
department = models.CharField(max_length=255, verbose_name='Department')
Views.py:
def raport(request):
raport = Fms.objects.filter(date__year='2013').extra(select={'month': "EXTRACT(month FROM date)"}).values('month', 'department').order_by('month').annotate(Count('department'))
return render_to_response ('fmstat/raport.html',
{'raport': raport},
context_instance=RequestContext(request))
测试按钮:
<div class="bs-docs-example">
<ul class="nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" id="drop4" role="button" data-toggle="dropdown" href="#">Select year for report <b class="caret"></b></a>
<ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4">
<li role="presentation"><a role="menuitem" tabindex="-1" href="{% url 'fmstat.views.raport' %}">2012</a></li>
-
那我该怎么做呢?通过URL传递,还是有其他更简单的方法
关于更新url模式以捕获年份,更新视图以年份为参数,并更新模板以使用年份构建url:
# urls.py
urlpatterns = ('',
url(r'^raport/(?<year>\d{4})/?', "fmstat.views.raport"),
# ...
)
# views.py
def raport(request, year):
raport = Fms.objects.filter(date__year=year).extra(...)
# ...
# template.html
(...)
<li role="presentation">
<a role="menuitem" tabindex="-1"
href="{% url 'fmstat.views.raport' '2012' %}">2012</a>
</li>
#url.py
urlpatterns=(“”,
url(r'^raport/(?\d{4})/?',“fmstat.views.raport”),
# ...
)
#views.py
def raport(请求,年份):
raport=Fms.objects.filter(日期\年=年)。额外(…)
# ...
#template.html
(...)
更新url模式以捕获年份,更新视图以年份为参数,并更新模板以使用年份构建url:
# urls.py
urlpatterns = ('',
url(r'^raport/(?<year>\d{4})/?', "fmstat.views.raport"),
# ...
)
# views.py
def raport(request, year):
raport = Fms.objects.filter(date__year=year).extra(...)
# ...
# template.html
(...)
<li role="presentation">
<a role="menuitem" tabindex="-1"
href="{% url 'fmstat.views.raport' '2012' %}">2012</a>
</li>
#url.py
urlpatterns=(“”,
url(r'^raport/(?\d{4})/?',“fmstat.views.raport”),
# ...
)
#views.py
def raport(请求,年份):
raport=Fms.objects.filter(日期\年=年)。额外(…)
# ...
#template.html
(...)