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