2010-05-09 6 views
1

Je cherche à trier les objets associés qui s'affichent lors de la modification d'un objet à l'aide du formulaire d'administration. Ainsi, par exemple, je voudrais saisir l'objet suivant:Tri des objets associés dans l'interface de formulaire Django Admin

class Person(models.Model): 
    first_name = models.CharField(...) 
    last_name = models.CharField(...) 
    hero = models.ForeignKey('self', null=True, blank=True) 

et modifier le prénom, le nom et héros en utilisant l'interface d'administration. Je veux trier les objets tels qu'ils apparaissent dans le menu déroulant par nom, prénom (ascendant). Comment je fais ça?

Contexte

  • J'utilise Django V1.1.
  • J'ai commencé par la recherche d'aide dans le django admin docs, mais n'a pas trouvé la solution
  • Comme vous pouvez le voir dans l'exemple, la clé étrangère pointe vers lui-même, mais j'attendre que ce serait la même que celle désignant un objet de modèle différent.
  • points bonus pour pouvoir filtrer les objets liés aussi (par exemple ~ permettre que la sélection d'un héros avec le même prénom)

Répondre

3
class Person(models.Model): 
    first_name = models.CharField(...) 
    last_name = models.CharField(...) 
    hero = models.ForeignKey('self', null=True, blank=True) 
    class Meta: 
     ordering = ['-last_name', 'first_name'] 

http://docs.djangoproject.com/en/dev/ref/models/options/#ordering

Note: Selon le Documents SVN, l'administrateur utilise uniquement la première des options de commande, c'est donc le plus proche que vous obtenez de ce que vous voulez.

+0

Oh, je pensais que les docs disaient que Meta.ordering est l'ordre par défaut lorsque vous * parcourez * les objets. Je n'avais pas réalisé que cela s'appliquerait à la liste déroulante lors de l'édition. Merci! Je vais essayer. ** Modifier ** - confirmé et accepté :) – Carver

0

Je viens de trouver cela plus tôt answer about django admin sorting. La solution permet plusieurs commandes et filtrages.

Désolé de poser la question en double. Il est étrange que la question précédente ne soit pas apparue lors de la recherche, mais elle est maintenant listée sous les questions connexes à droite. Quoi qu'il en soit, j'ai pensé que je lui donnerais plus de jus de lien au cas où les gens finiraient ici.

Questions connexes