web-dev-qa-db-fra.com

Django: sélectionnez une option dans le modèle

Dans mon modèle Django, j'utilise la liste des objets dans un menu déroulant. Je la traite en fonction de la sélection.

Le modèle HTML:

<select id="org" name="org_list" onChange="redirectUrl()">
  <option  value="" selected="selected">---SELECT---</option>
  {% for org in organisation %}
   <option value="{{org.id}}">{{org.name|capfirst}}</option>
  {% endfor %}
</select>

Le problème est que lorsque je sélectionne la valeur dans le menu déroulant, j'obtiens le contenu qui appartient à la sélection. Depuis l'attribut selected = "selected" qui se fixe uniquement sur l'élément "--- SELECT ---", sauf si je mets le selected = "selected " dans

<option value="{{org.id}}" selected="selected">{{org.name|capfirst}}</option>

Dans ces organisations, le dernier élément itéré n'est fixé que par le menu déroulant. Mais je veux que l'élément sélectionné soit affiché dans le menu déroulant.

Comment puis-je résoudre ce problème?

17
Nava

Vous voudrez passer l'organisation actuellement sélectionnée dans la vue, peut-être sous la forme current_org de sorte que lorsque vous parcourez les organisations, vous pouvez comparer avec celle actuelle pour déterminer si vous devez la sélectionner ou non, comme:

{% for org in organisation %}
   <option value="{{org.id}}"
       {% if org == current_org %}selected="selected"{% endif %}>
       {{org.name|capfirst}}
   </option>
{% endfor %}
43
Dan Breen