/

时间:2015-07-03 11:08:41

标签: python html django django-templates

我的模板:

<form action="{% url 'student:filter' %}" method='get'>
 <select>   
  <option value="00">----</option>
  <option value="01">Jan</option>
  <option value="02">Feb</option>
  <option value="03">Mar</option>
  <option value="04">Apr</option>
  <option value="05">May</option>
  <option value="06">Jun</option>
  <option value="07">Jul</option>
  <option value="08">Aug</option>
  <option value="09">Sept</option>
  <option value="10">Oct</option>
  <option value="11">Nov</option>
  <option value="12">Dec</option>
</select>
</form>

views.py:

def filter(request, value):
    value = request.GET['value']
    att = Attendancename.objects.filter(date__hours=int(value))
    return render(request, 'listfilter.html', {'attend': att})

urls.py:

url(r'^filter/(?P<value>\d+)$', views.filter, name = 'filter'),

我想要的是从html下拉列表中选择一个特定月份,并且需要在我的views.py中通过url的参数传递其相应的值,然后在查询查询中使用该参数。 / p>

但事情并没有按照我的意愿行事。我的模板出错了,我不确切知道如何在下拉列表中触发与所选值相对应的操作。

请!谁能告诉我如何使其正确?

谢谢!提前......

1 个答案:

答案 0 :(得分:1)

不要试图在slug中传递这些数据。在这种情况下,使用查询字符串,浏览器将自动附加GET。

<form action="{% url 'student:filter' %}" method='get'>
 <select name="filter">
  ...


def filter(request):
    value = request.GET['value']


url(r'^filter/$', views.filter, name = 'filter'),