【发布时间】:2019-10-19 06:35:14
【问题描述】:
我想根据感兴趣的特定水果显示请求列表。所以我写了一个列表视图,条件是它应该显示包含芒果的列表,否则它应该显示包含香蕉的列表。所以当我渲染模板时,模板应该检查它的 mango_list 还是banana_list。但只有 mango_list 显示。视图中的 else 语句不起作用
如果上下文是 mango_list,我在视图中编写了条件语句来渲染 mango_list,否则显示香蕉列表。并将条件放入模板中。
下面是我的代码
views.py
def fruit_list_view(request):
mango_list = Request.objects.filter(taste__icontains='mango')
banana_list = Request.objects.filter(taste__icontains='banana')
context ={
'mango_list': mango_list,
'banana_list': banana_list,
}
if mango_list in context.values():
return render(request,"frCat_list.html",context={'mango_list': mango_list})
else:
return render(request,"frCat_list.html",context={'banana_list': banana_list})
url.py
urlpatterns = [
path('', views.index, name='index'),
path('mango_list/', views.fruit_list_view, name='mango_list'),
path('banana_list/', views.fruit_list_view, name='banana_list'),
]
模板文件(模板名称为 frCat_list.html)
{% extends 'base_generic.html' %}
{% load static %}
{% block content %}
<body>
{% if mango_list %}
{% for request in mango_list %}
<tbody>
<td><a href="{% url 'request-detail' request.id %}">{{request.id}}</a></td>
<td>{{request.price}}</td>
<td>{{request.size}}</td>
<td>{{request.comment}}</td>
</tbody>
{% endfor %}
</table>
{% elif banana_list %}
{% for request in banana_list %}
<tbody>
<td><a href="{% url 'request-detail' request.id %}">{{request.id}}</a></td>
<td>{{request.colour}}</td>
<td>{{request.size}}</td>
<td>{{request.comment}}</td>
</tbody>
{% endfor %}
</table>
{% else %}
<p>There are no such fruit available.</p>
{% endif %}
</body>
{% endblock %}
我希望在我的模板中看到条件语句。当它的 mango_list 时,将显示包括 manago 在内的请求列表,当它的 banan_list 时,将显示包括香蕉在内的请求列表。但只有芒果列表有效。请帮忙....
【问题讨论】:
标签: django django-templates django-views