Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将变量从Django中的下拉列表传递到模板_Django_Templates_Variables_Drop Down Menu_Views - Fatal编程技术网

将变量从Django中的下拉列表传递到模板

将变量从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

我有一个正在Django中进行的小项目(仍在学习它和Python),对于在Django中传递变量有一些疑问

例如,用户输入一些数据,项目对其进行处理,然后计算一些简单的统计数据。我想通过下拉按钮传递一个“年”变量,这样用户就可以选择应该生成报告的年份

代码的某些部分:

Models.py:

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
    (...)