Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

L'utilisation de la class Meta (Option) de Django

+2 votes

Je développe un framework utilisant fortement les descripteurs.
Je reluque donc régulièrement les choix faits dans Django.

Je n’arrive pas à saisir l’intérêt de la class Options Meta que l’on déclare pour un modèle.
J’ai certes besoin moi aussi d’ajouter des informations complémentaires à mon modèle, qui ne sont pas des propriétés d’instance, mais des propriétés de la classe Model.

Donc l’ensemble des informations pourrait être des attributs de classe, quitte à les traiter et les manipuler dans la metaclass (comme le fait la classe Options)

Mais ma réflexion face à celle des développeurs de Django..........
Voyez-vous un intérêt à déporter ces informations ?

demandé 14-Dec-2016 par Kermit (210 points)

Je n’arrive pas à saisir l’intérêt de la class Options Meta que l’on
déclare pour un modèle.

Je t'avoue, ta question n'est pas claire. Est ce que tu parles de la classe Options Meta ou bien de la classe Meta? Je ne connais que la derniere. As tu parcouru la doc?

Model metadata is “anything that’s not a field”, such as ordering options (ordering), database table name (dbtable), or human-readable singular and plural names (verbosename and verbosenameplural). None are required, and adding class Meta to a model is completely optional.

Peux tu nous donner plus de details sur ce que tu essaies de faire? Nous montrer plus de code?

En faite, on parle de la même chose.
La classe que l'on déclare class Meta permet la création de la classe Options pour le modèle.
La liste des Meta Options sont bien des attributs de la classe Options :
Model Meta options

Mais là on parle Django, et effectivement ma question n'est pas claire.

Je ne comprends pas ce qui a motivé les développeurs de Django à exploiter une classe Options. Ils doivent bien avoir une bonne raison.

J'ai ce choix pour un projet également fortement basé sur des descripteurs, donc des metaclass.
J'ai le besoin également d'avoir des metas informations facilement renseigner dans le Model, dont je dois prendre en compte à la création de la classe. exemple : l'option 'abstract'.

J'aurai opté pour des attributs de class pour ces metas informations.
Les devs de Django, non. Je cherche à comprendre leurs raisons.

Je viens juste de tomber sur cet article. Pas encore lu calmement, mais je pense qu'il y a à l'interieur, un début de reponse.

L'article est parfait. Une vrai explication. Plus qu'un début de réponse

Votre réponse

Preview

Votre nom à afficher ( en option ):
Vie privée: . Votre adresse de messagerie ne sera utilisée que pour l'envoi de ces notifications .
Vérification anti -spam:
Pour éviter cette vérification à l'avenir, Connectez vous ou inscrivez vous.
...