Джанго баг с тегом - PullRequest
       18

Джанго баг с тегом

0 голосов
/ 16 декабря 2009

Мой код

{% if GET['search'] % }
            {% block count codes|length as counter %}

Является ли следующее допустимое условие -clause тегом Django?

{% if GET['search'] % }

Следующий код выдает ошибку, что block принимает только один аргумент. Что не так в коде?

{% block count codes|length as counter %}

Ответы [ 3 ]

5 голосов
/ 16 декабря 2009

Django - это не PHP.

Вы пытаетесь использовать фильтр шаблона внутри тега шаблона. Вы можете использовать тег или фильтр, но не оба.

В этом отношении, поскольку тег block принимает только метку для блока, я не уверен, что должен делать код шаблона, который вы написали. Кроме того, вы уверены, что GET['search'] является допустимым синтаксисом в теге шаблона?

Я немного догадываюсь о ваших взглядах и требованиях к шаблонам, но вот как бы я подошел к этому на вашем месте. В зависимости от обстоятельств вам придется заполнить несколько пробелов.

In 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 %}
3 голосов
/ 16 декабря 2009

Это неправильный синтаксис. Попробуйте это:

{% if GET.search % }

Это предполагает, что у вас есть GET в контексте, переданном вашему шаблону.

1 голос
/ 16 декабря 2009

Сначала определите блоки, затем добавьте код внутри

{% block header %}
 <h1>My Site</h1>
{% endblock header %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...