2013-04-19 3 views
0

У меня есть небольшой проект, продолжающийся в Django (все еще изучающий его и Python), и у вас есть некоторые вопросы относительно передачи переменной в Django.Передача переменной из раскрывающегося списка в 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-адресу или есть другой, более простой способ?

С уважением

ответ

2

Обновите свой шаблон 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> 
+0

Спасибо, работает Великий! – InKline

Смежные вопросы