我正在使用'if'语句的示例,但由于某种原因,我无法让它工作。 我在'if'中尝试了所有可能的语句,但似乎没有什么能使if语句运行。相反,Else语句会运行。
样品
{% extends 'base.html' %}
{% block content %}
<h2>Hardware Inventory</h2>
{% if hardware %}
<table id="datatable">
<thead>
<tr>
<th>Name</th>
<th>Manufacturer</th>
<th>Category</th>
</tr>
</thead>
<tbody>
{% for item in hardware %}
<tr>
<td><a href="/inventory/hardware/{{ item.id }}">{{ item.name }}</a></td>
<td>{{ item.manufacturer }}</td>
<td>{{ item.kind }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>The inventory is empty.</p>
{% endif %}
{% endblock %}
矿
{% extends 'base.html' %}
{% block content %}
<h2>News</h2>
{% if entry %}
{% for item in entry %}
<table id = "news">
<tr>
<td><a href="/news/Entry/{{ item.id }}">{{ item.title }}</a></td>
<td>{{ item.body }}</td>
<td>{{ item.pub_date }}</td>
</tr>
</table>
{% endfor %}
{% else %}
<p>No News</p>
{% endif %}
{% endblock %}
我的view.py新闻,我不知道怎么写得正确,但我尝试了不同的组合,这一个错误此刻导致它崩溃
def index(request):
return render_to_response('news/index.html', {'Entry': Entry}, context_instance=RequestContext(request))
def Entry(request):
Entry = Entry.objects.all().order_by('pub_date')
return render_to_response('news/Entry.html', {'item':item}, context_instance=RequestContext(request))
答案 0 :(得分:3)
确保您实际上已将entry
传递到上下文中。例如:
render_to_response('template.html', { 'entry': entry })
Unset变量的行为与Django模板中设置为None
的变量相同。
<强>更新强>
对您的视图代码进行了一些修改;甚至不确定如何使用你拥有的模板进行渲染。
原件:
def index(request):
return render_to_response('news/index.html', {'Entry': Entry}, context_instance=RequestContext(request))
def Entry(request):
Entry = Entry.objects.all().order_by('pub_date')
return render_to_response('news/Entry.html', {'item':item}, context_instance=RequestContext(request))
修改:
def index(request):
entry = Entry.objects.all().order_by('pub_date')
return render_to_response('news/index.html', {'entry': entry}, context_instance=RequestContext(request))
我认为您甚至不需要Entry
方法,因此将其删除。我保持你的命名相同,但是调用变量entries
是更好的形式,因为它是多个项目。