Как вы можете вручную отобразить поле формы с его начальным набором значений?

StackOverflow https://stackoverflow.com/questions/3929903

Вопрос

Я пытаюсь отображать поля формы вручную, чтобы мои коллеги -дизайнеры могли манипулировать входными элементами в HTML, а не борется с источником Python.

т.е. Вместо того, чтобы объявлять подобные поля формы ...

            {{ form.first_name }}   

.. я действительно делаю ...

            <label for="id_first_name">Your name:</label>
            <input type="text" value="{{  form.first_name.somehow_get_initial_value_here }}" name="first_name" id="id_first_name" class="blabla" maxlength="30" >
            {% if form.first_name.errors %}<span>*** {{ form.first_name.errors|join:", " }}</span>{% endif %}

Проблема в том, что, похоже, нет способа получить начальное значение поля во втором методе. {{form.first_name}} оператор делает элемент ввода с правильным начальным значением, но каким -то образом нет ничего похожего на {{form.first_name.initial_value}} Поле, когда вы хотите отображать форму вручную.

Это было полезно?

Решение

В этой проблеме есть интересный давний билет. Существует пример кода для реализации фильтра шаблона в комментариях, который должен делать то, что вам нужно:

http://code.djangoproject.com/ticket/10427

Другие советы

<input value="{{form.name.data|default_if_none:'my_defaut_value'}}" ... />

Вам придется использовать default_if_none Поскольку неявное значение связанного поля не будет храниться в data. Подробнее здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top