J'ai une forme que je suis en utilisant le champ suivant dans.Django forme QuerySet pour ModelChoiceField
contact_country = forms.ModelChoiceField(queryset=Country.objects.all())
Le modèle pays ressemble à ce
class Country(models.Model):
iso = models.CharField(max_length=2)
name = models.CharField(max_length=80)
printable_name = models.CharField(max_length=80)
iso3 = models.CharField(max_length=3,null=True, blank=True)
numcode = models.IntegerField(null=True, blank=True)
special = models.BooleanField(default=False)
def __unicode__(self):
return self.printable_name
class Meta:
ordering = [ 'printable_name' ]
Le champ « spécial » indique que le pays est "spécial". Si le pays est «spécial», je veux qu'il apparaisse avant le reste de la liste - comme je suis sûr que vous avez vu ailleurs sur le web (par exemple, les pays anglophones comme l'Australie, le Royaume-Uni et les États-Unis en haut du sélectionnez, mais aussi avec le reste des pays).
Est-ce possible avec QuerySet? Ou devrais-je regarder ailleurs?
Oui, à part que je ne reçois pas les pays « spéciaux » apparaît à nouveau ci-dessous dans la liste de tous les pays. – Salgo
Meilleure réponse, mais devrait être '.order_by ('- special')' à la place. –