L'utilisation de méta classe dans django
-
23-09-2019 - |
Question
Quelqu'un peut-il expliquer pourquoi s'il vous plaît méta classe utilisée dans l'exemple suivant.
Ex:
Class Employee (models.Model):
name = models.ForeignKey(name)
Gender = models.IntegerField()
class Meta:
ordering = ["Gender"]
Merci.
La solution
Parce que l'auteur / programmeur veut trier les résultats par la valeur du champ de genre.
Autres conseils
modèles Django utilisent la classe Meta
pour contenir des informations supplémentaires sur le modèle qui ne serait pas nécessairement approprié pour contenir dans la classe de modèle lui-même. Notez que ceci est pas le même que celui metaclass
Python; qui est un sujet complètement différent.
Dans ce cas, il commande ou le tri des requêtes à ce modèle par le champ « Genre »
Dans ce cas, il définit le champ par défaut pour commander si vous ne fournissez pas ORDER_BY
dans votre requête.
Il est expliqué dans Django Documentation pour les modèles
https://docs.djangoproject.com/en/dev/topics/db/models/
Donnez vos métadonnées modèle en utilisant une méta classe interne, comme:
Class Employee (models.Model):
....
class Meta:
ordering = ["attribute-X"]
Une autre option utile peut être utilisé en classe Meta est verbose_name.