2010-02-13 2 views
1

Я пытаюсь настроить, как моя форма отображается с помощью form_snippet, как предложено в docs. Вот что я придумал до сих пор:Настройка формы Django: обязательно и InputId?

{% for field in form %} 
<tr> 
    <th><label for="{{ field.html_name }}">{{ field.label }}:</label></th> 
    <td> 
     {{ field }} 
     {% if field.help_text %}<br/><small class="help_text">{{ field.help_text }}</small>{% endif %} 
     {{ field.errors }} 
    </td> 
</tr> 
{% endfor %} 

Конечно, field.html_name это не то, что я ищу. Мне нужно поле ввода id. Как я могу это получить?

Кроме того, есть ли способ определить, требуется ли поле, чтобы я мог отображать звездочку рядом с меткой?

ответ

3

Найдено и ответы here. Мой новый сценарий выглядит следующим образом:

{% for field in form %} 
<tr> 
    <th>{% if field.field.required %}*{% endif %}<label for="{{ field.auto_id }}">{{ field.label }}:</label></th> 
    <td> 
     {{ field }} 
     {% if field.help_text %}<br/><small class="help_text">{{ field.help_text }}</small>{% endif %} 
     {{ field.errors }} 
    </td> 
</tr> 
{% endfor %} 

Глупые неполные документы: \

1

{{field.label_tag}} должен иметь то, что вы ищете, чтобы заполнить атрибут «для» на этикетке.

Возможно, вы захотите попробовать {{field.required}} и посмотреть, работает ли он, я, кажется, помню что-то подобное в моих собственных формах.

http://docs.djangoproject.com/en/dev/topics/forms/#looping-over-the-form-s-fields

+0

Да ... Я прочитал это документация, и в ней отсутствуют два свойства, которые мне нужны. 'label_tag' is * not *, что я хочу. Я не могу включить двоеточие внутри '

+0

Вы правы, жаль, что я слишком быстро готов. {{field.field}} определенно то, что вы должны использовать после просмотра моего собственного кода. – Xealot

1

Вы можете получить идентификатор атрибута в поле ввода как это: {{}} field.auto_id

+0

спасибо. Я уже нашел ответ, но забыл его проверить. – mpen

Смежные вопросы