这里我放了我的代码文件,这样你就可以了解我的代码
在我的index.html
中{% load tag %}
<body>
<select name="select_year">
<option>2017</option>
<option>2018</option>
<option>2019</option>
<option>2020</option>
</select>
</br>
</br>
<table border="1">
<tr>
<td>No</td>
<td>Name</td>
<td>DOB</td>
<td>Year</td>
</tr>
{% for Manvi_User in ordering %}
<tr>
<td>{{forloop.counter}}</td>
<td>{{ Manvi_User.first_name }}</td>
<td>{{ Manvi_User.dob}}</td>
<td>{{year|calculate_year:forloop.counter0}}</td>
</tr>
{% endfor %}
</table>
</body>
in vies.py
def index(request):
all_user = Manvi_User.objects.all()
ordering = all_user.order_by('dob')
return render(request, 'index.html', {'ordering': ordering})
在tag.py
中@register.filter
def calculate_year(year, loop_counter):
try:
year = int(2017)
except ValueError:
return None
else:
return str(year + (loop_counter // 2))
在一年中我使用tag.py
放置静态年份如果用户选择2019我想只显示2019年的数据
答案 0 :(得分:1)
据我所知,你在这里尝试做什么,即根据选择的年份过滤查询集 - 你开始的方式实际上不是这样做的。
您应该查看django-filter应用,这样可以轻松完成您在此处尝试的内容。
对于这种特定情况,您必须在filters.py
内定义custom filter,然后在view中使用该过滤器。