带标记的Django bug

0 tags django

我的代码

{% if GET['search'] % }
            {% block count codes|length as counter %}
Run Code Online (Sandbox Code Playgroud)

以下是一个有效的if -clause作为Django标签?

{% if GET['search'] % }
Run Code Online (Sandbox Code Playgroud)

以下代码给出了一个错误,即只接受一个参数. 代码有什么问题?

{% block count codes|length as counter %}
Run Code Online (Sandbox Code Playgroud)

Jar*_*die 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})
Run Code Online (Sandbox Code Playgroud)

在模板中:

{% block count %}
    {% if request_was_search %}
        // do whatever you want here
        <p>There were {{ codes|length }} codes submitted.</p>
        // end example
    {% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)