цикл for для полей формы и исключение одного из полей с помощью if - PullRequest
4 голосов
/ 02 апреля 2009

Проблема, с которой я борюсь, заключается в следующем:

У меня есть:

{% for field in form %}
    {{ field }}
{% end for %}

То, что я хочу, это поместить оператор if, чтобы исключить поле, которое .label или что-либо предоставлено Как:

{% for field in form%}
    {% if field == title %}
    {% else %}
        {{ field }}
    {% endif %}
{% endfor %}

Возможно ли это? Мне нужно много полей, чтобы написать их по одному и только одно или два, чтобы исключить.

Спасибо за любые советы.

BR, Czlowiekwidmo.

Ответы [ 2 ]

10 голосов
/ 02 апреля 2009

Да, это должно быть возможно:

{% for field in form %}
    {% ifnotequal field.label title %}
        {{ field }}
    {% endifnotequal %}
{% endfor %}

Шаблоны Django * предлагают варианты ifequal и ifnotequal, и вы можете протестировать field.label для любой переменной контекста или строки.

7 голосов
/ 02 апреля 2009

Вы можете быть намного счастливее, создав подкласс формы, исключая поле, вызывающее проблемы. Смотри http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#form-inheritance

class SmallerForm( MyForm ):
    class Meta(MyForm.Meta):
        exclude = [ title ]
...