Шаблоны Django — как строго проверять равенство строки

#django #django-templates #django-admin #tabular #templatetags

#django #django-шаблоны #django-admin #табличный #templatetags

Вопрос:

Я изо всех сил пытаюсь решить следующее:

Я настраиваю встроенный шаблон django tabular, который содержит несколько полей.

У меня есть условие

 {% if field.field.name == 'productid' %} ... {% endif %}
 

Однако есть два поля, которые имеют … применяемое условие, которое является «productid» и «distributionid price productid» — оба содержат слово productid. Однако я хочу, чтобы оно было только у первого. Как я могу сделать это условие более строгим?

Любая помощь будет высоко оценена.

РЕДАКТИРОВАТЬ: html-файл:

         {% if field.field.name == 'productid' %}
                <input type="text" name="PN" id="PN" placeholder="PN:"/>
        {% endif %}
        {% if field.field.name != 'productid' %}
            <td class="field-{{ field.field.name }}"
               data-id="{{ field.field.id }}" data-type="id">

          {% if field.is_readonly %}
              <p>{{ field.contents }}</p>
          {% else %}
              {{ field.field.errors.as_ul }}
              {{ field.field }}
          {% endif %}
 

(возвращает результатРезультат)

Комментарии:

1. Не могли бы вы показать нам свой views.py файл?

2. Там нет никакого views.py связанный с этим, поскольку это сайт администратора (настраиваемая встроенная таблица администратора)

3. Я думаю, что то, как вы зацикливаетесь на поле, имеет значение, можете ли вы поделиться большей частью своего HTML-файла?

4. Edit добавлено, я хочу идентифицировать поле и настроить его, чтобы я мог запускать для него пользовательский ajax-запрос. Я знаю, что это можно было бы сделать более СУХИМ, но сейчас это не проблема, это для меня, чтобы мне было легче читать 🙂

5. это стандартная табличная строка, в которой можно найти только небольшую настраиваемую часть (см. Выше) yourpathtodjangodjangocontribadmintemplatesadminedit_inlinetabular.html Они напечатаны на прилагаемом скриншоте непосредственно перед полем 🙂

Ответ №1:

Ваше условие if находится за пределами поля td. Просто поместите его в поле.тег поля

                   {% if field.is_readonly or not field.field.is_hidden %}
                  <td{% if field.field.name %} class="field-{{ field.field.name }}"{% endif %}>
                  {% if field.is_readonly %}
                      <p>{{ field.contents }}</p>
                  {% else %}
                      {{ field.field.errors.as_ul }}
                      {{ field.field }}
                      {% if field.field.name == 'productid' %}
                            <input type="text" name="PN" id="PN" placeholder="PN:"/>
                      {% endif %}
                  {% endif %}
                  </td>
                  {% endif %}