我的代码
{% if GET['search'] % }
{% block count codes|length as counter %}
以下是一个有效的if -clause作为Django标签吗?
{% if GET['search'] % }
以下代码给出了一个错误, block 只接受一个参数。 代码有什么问题?
{% block count codes|length as counter %}
答案 0 :(得分:5)
Django不是PHP。
您正尝试在模板标记内使用模板过滤器。您可以使用标签或过滤器,但不能同时使用两者。
就此而言,由于block
标记仅占用块的标签,我不确定您编写的模板代码应该做什么。此外,您确定GET['search']
是模板代码中的有效语法吗?
我对你的观点和模板要求有点猜测,但这就是我在你的位置接近这个问题的方法。根据您的具体情况,您需要为自己填写许多空白。
在views.py
:
from django.shortcuts import render_to_response
def my_view(request):
request_was_search = False
codes = []
if request.GET.has_key('search'):
request_was_search = True
codes = some_function_you_define_to_get_codes()
return render_to_response('foo.html',
{'codes':codes,
'request_was_search':request_was_search})
在模板中:
{% block count %}
{% if request_was_search %}
// do whatever you want here
<p>There were {{ codes|length }} codes submitted.</p>
// end example
{% endif %}
{% endblock %}
答案 1 :(得分:3)
这是不正确的语法。试试这个:
{% if GET.search % }
这假设您在传递给模板的上下文中有GET。
答案 2 :(得分:1)
首先定义块,然后在
中添加代码{% block header %}
<h1>My Site</h1>
{% endblock header %}
答案 3 :(得分:0)
看看你的代码的第一行: {% if GET['search'] % } 最后两个字符 % 和 } 之间的额外空格是问题所在。删除空格,使 %} 靠在一起。错误('block' 标签只接受一个参数)就会消失。