Pregunta

Estoy tratando de hacer que los campos de un formulario de forma manual para que mis colegas diseñadores podían manipular los elementos de entrada dentro del HTML en lugar de luchar en la fuente de Python.

ie. En lugar de declarar campos de formulario como este ...

            {{ form.first_name }}   

.. que realmente hacen ...

            <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 %}

El problema es que no parece haber ninguna manera de obtener el valor inicial del campo en el segundo método. {{form.first_name}} declaración no hacer que el elemento de entrada con el valor inicial adecuado pero de alguna manera no hay nada como {{}} form.first_name.initial_value cuando desee reproducir el formulario manualmente.

¿Fue útil?

Solución

Hay un billete de larga data interesante sobre este mismo asunto. No hay código de ejemplo para implementar un filtro de plantilla en los comentarios que se debe hacer lo que tiene:

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

Otros consejos

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

Usted tendrá que utilizar default_if_none porque el valor implícito de un campo enlazado no se almacenará en data. Más detalles aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top