Comment pouvez-vous rendre manuellement un champ de formulaire avec son jeu de valeur initiale?

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

Question

Je suis en train de rendre les champs d'un formulaire manuellement afin que mes collègues de créateurs pourraient manipuler les éléments d'entrée dans le code HTML au lieu de lutter dans la source Python.

ie. Au lieu de déclarer des champs de formulaire comme celui-ci ...

            {{ form.first_name }}   

.. Je fais en fait ...

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

Le problème est qu'il semble y avoir aucun moyen d'obtenir la valeur initiale du champ dans la deuxième méthode. {{form.first_name}} déclaration ne rend l'élément d'entrée avec la valeur initiale correcte, mais en quelque sorte il n'y a rien comme {{form.first_name.initial_value}} lorsque vous veulent rendre le formulaire manuellement.

Était-ce utile?

La solution

Il y a un billet debout longue intéressante au sujet de cette question. Il est un exemple de code pour mettre en œuvre un filtre de modèle dans les commentaires qui devraient faire ce que vous avez besoin:

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

Autres conseils

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

Vous devrez utiliser default_if_none parce que la valeur implicite d'un champ lié ne sera pas stocké dans data. Plus de détails

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top