Salut,

Si c'est sur le formulaire de ton modèle dans l'admin Django c'est la solution 
de l'attribut "Meta.ordering" à renseigner.

Si c'est dans un formulaire hors de l'admin, ça se passe avec un 
"ModelChoiceField" avec lequel tu peux définir une option "queryset" 
définissant 
le queryset à employer et donc où tu peux définir l'ordre (et plus si besoin).

Je crois que si tu l'a pas définit à la main dans ton formulaire, Django doit 
l'utiliser automatiquement, si c'est le cas tu doit pouvoir surcharger 
l'attribut queryset comme ceci :

class DealForm(ModelForm):
    def __init__(self, *arg, **kwargs):
        super(DealForm, self).__init__(*args, **kwargs)
        self.fields['peer'].queryset = Peer.objects.all().order('-category', '-
peer')

Sinon essaye aussi de spécifier carrément ce champ "ModelChoiceField" à la 
main.

-- 
Cordialement,
David THENON.

Le jeudi 24 mai 2012 12:54:17, Gabriel MACHADO a écrit :
> Bonjour, j'ai créé un formulaire à partir d'un model (un ModelForm).
> Le formulaire affiche des listes déroulantes. J'aimerais que le contenu
> des listes déroulantes soit triè par ordre alphabétique.
> 
> Voici le code concerné :
> 
> class Deal(models.Model):
>       category = models.ForeignKey(Category,to_field='title',
> verbose_name="Catégorie")
>       peer = models.ForeignKey(Peer, to_field='name', verbose_name="Magasin")
>       amount = models.DecimalField('Montant', max_digits=8, decimal_places=2)
>       date = models.DateField('Date de la transaction')
>       desc = models.CharField('Description de l\'achat', max_length=20,
> blank=True)
> 
> class DealForm(ModelForm):
>       class Meta:
>               model = Deal
> 
> 
> Par exemple, pour le champs Peer, j'ai :
> 
> <label for="id_peer">Magasin</label>:<select name="peer" id="id_peer">
> <option value="" selected="selected">---------</option>
> <option value="Géant Casino">Géant Casino</option>
> <option value="Auchan">Auchan</option>
> <option value="Simply Market">Simply Market</option>
> <option value="Carrefour Market">Carrefour Market</option>
> <option value="Les Halles de Villefranche">Les Halles de
> Villefranche</option>
> <option value="Agip">Agip</option>
> </select>
> 
> Je voudrais avoir :
> 
> <label for="id_peer">Magasin</label>:<select name="peer" id="id_peer">
> <option value="" selected="selected">---------</option>
> <option value="Agip">Agip</option>
> <option value="Auchan">Auchan</option>
> <option value="Carrefour Market">Carrefour Market</option>
> <option value="Géant Casino">Géant Casino</option>
> <option value="Les Halles de Villefranche">Les Halles de
> Villefranche</option>
> <option value="Simply Market">Simply Market</option>
> </select>
> 
> Savez-vous comment faire ?
> _______________________________________________
> django mailing list
> [email protected]
> http://lists.afpy.org/mailman/listinfo/django
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à