J'ai un ModelForm
où l'un des champs (nommé creator
) est un ForeignKey
Ainsi, pour {{ form.creator }}
Django rend l'élément <select>
comme ceci :
<select id="id_approver" name="approver">
<option selected="selected" value="">---------</option>
<option value="1">hobbes3</option>
<option value="2">tareqmd</option>
<option value="3">bob</option>
<option value="4">sam</option>
<option value="5">jane</option>
</select>
Mais je souhaite ajouter un onchange
afin de pouvoir utiliser AJAX ultérieurement pour faire autre chose. Je souhaite également modifier l'attribut ---------
pour dire autre chose et afficher le nom complet des approbateurs, et non leur nom d'utilisateur.
Est-il possible d'obtenir une liste d'approbateurs possibles et de générer mes propres options de sélection ? Un peu comme
<select id="id_approver" name="approver" onchange="some_ajax_function()">
<option select="selected" value="0">Choose a user</option>
{% for approver in form.approver.all %} <!-- This won't work -->
<option value="{{ approver.pk }}">{{ approver.get_full_name }}</option>
{% endfor %}
</select>
Je pense aussi que si la liste des approbateurs devient trop importante (plus de 50 par exemple), j'aurai besoin d'une sorte de champ auto-complet consultable pour l'approbateur. Dans ce cas, je devrai certainement écrire mon propre code HTML.
Au cas où quelqu'un en aurait besoin, mon ModelForm
ressemble à ceci :
class OrderCreateForm( ModelForm ) :
class Meta :
model = Order
fields = (
'creator',
'approver',
'work_type',
'comment',
)