Re: models
Posté par
Sebastien
le
25/10/2011 22:59
Bonjour,
C'est effectivement une question général sur python.
Quand vous faites :
from django.db import models
Vous importez le module "models".
Un module peut contenir des fonctions ou des classes avec leurs méthodes.
Je crois ne pas me tromper en disant qu'un module, c'est un fichier, cela correspond à ma pratique, mais c'est peut-être plus subtile (quid des répertoires...).
Pour utiliser les éléments du module "models" vous faites models.CharField() par exemple.
si vous voulez importez tous les éléments de django.db.models vous ferriez :
from django.db.models import *
...
first_name = CharField(max_length=30)
mais je vous déconseille cette écriture qui n'est pas assez explicite pour être maintenable (et pose sûrement d'autre problèmes).
Vous pourriez n'importer que la classe CharField :
from django.db.models import CharField
...
first_name = CharField(max_length=30)
Vous pourriez aussi utiliser un alias (un surnom) pour votre import :
from django.db import models as toto
...
first_name = toto.CharField(max_length=30)
d'ailleurs vous pourriez utiliser la classe CharField (car CharField est bien une classe) sans ne rien importer du tout en faisant :
first_name = django.db.models.CharField(max_length=30)
Dans le module "models" il y a plein de classes. Notamment les classe Model et CharField.
L'attribut first_name de la classe Person contient donc un objet de classe CharField
Cordialement,
Sébastien
|