Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > Python > Django de zéro : vos projets Python sur le Web ! > Débutons avec Django > Des champs, des champs, encore des champs ! > Lecture du tutoriel

Des champs, des champs, encore des champs !

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : .skaz
Visualisations : 1 414

Plus d'informations Plus d'informations
Nous avons dans le précédent chapitre découvert trois types de champs : CharField, TextField et ForeignKey. Nous allons continuer dans cette lancée avec la découverte d'autres champs. On se basera sur le modèle suivant tout au long du chapitre : code d'exemple, description, image de ce que ça donne dans l'administration générée par Django et attributs obligatoires pour certains champs.

Dans un second temps nous verrons les options possibles sur ces champs, qui nous permettront de mieux les configurer et avoir quelque chose à notre goût.

Bonne lecture les Djangonautes ! :)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Les champs disponibles

Nous allons dans cette partie découvrir les différents champs existants sous Django. Cette découverte vous permettra de créer des applications (avec un côté administratif seulement, pour le moment) complètes. :)

Demandons des informations particulières



Faisons des choix !



En ce qui concerne les informations calendaires



Des nombres dans tous les sens !




Options disponibles pour ces différents champs

Après cette longue liste des différents champs que vous pouvez rencontrer et utiliser, voilà les options qu'ils peuvent avoir. Les options vont permettre de dire si oui ou non ce champ est obligatoire ou pas, s'il accepte les valeurs nulles, etc.

Tout est question de mise en forme



Comme vous l'avez sans doute remarqué, Django donne dans son administration un nom aux différents champs. Ce nom dépend de la façon dont vous le nommez dans votre modèle. Il existe une façon de contourner ce problème, renseignez par exemple le nom que vous voulez voir apparaître dans l'interface d'administration de la façon suivante : pseudonyme = models.CharField('Pseudonyme souhaité', max_length=100) .

Les options null et blank




L'unicité, il n'y a que ça de vrai ! (ou pas)




Faisons des choix, hé oui, encore !



Partons du principe que vous ayez un module dans une application à créer où un champ permettra de renseigner la couleur avec laquelle vous préférez écrire. Quatre choix possibles : bleu, noir, rouge et vert. Comment faire pour laisser ces choix sans passer par un autre module avec un ForeignKey dessus ? En utilisant l'option choices évidemment ! :)

Nous allons définir ces choix dans un tuple de la façon suivante :

Code : Python
1
2
3
4
5
6
couleurs = (
           ('Bleu', 'Bleu'),
           ('Noir', 'Noir'),
           ('Rouge', 'Rouge'),
           ('Vert', 'Vert'),
           )

Vous remarquerez que dans le tuple principal se trouvent d'autres tuples contenant nos valeurs. La première valeur correspond à ce qui sera enregistré dans la base de données, et la seconde à ce qui sera affiché à l'utilisateur : ici, ce sont les mêmes. Dans un champ de type CharField, définissez à présent l'option choices à couleur pour obtenir une liste déroulante et permettre un choix restreint à l'utilisateur.

Code : Python
1
2
3
4
5
6
7
8
couleurs = (
           ('Bleu', 'Bleu'),
           ('Noir', 'Noir'),
           ('Rouge', 'Rouge'),
           ('Vert', 'Vert'),
           )

couleur = models.CharField(max_length=100, choices=couleurs)

Vous pouvez mettre le tuple où vous voulez dans votre modèle, à l'intérieur ou à l'extérieur de votre classe. Cela n'a aucune importance. C'est bon de le préciser. ;)

Accompagnons les champs DateField, TimeField et DateTimeField !



Par défaut, les champs cités dans le titre DateField, TimeField et DateTimeField n'ont pas de valeur par défaut, la date ou / et l'heure courante par exemple, ça peut cependant être un gain de temps. Nous allons remédier à cela avec l'option auto_now, qui, une fois mise à True affichera la date / heure courante, pratique non ? Allez, voilà ce que ça donne dans votre code :

Code : Python
1
date_heure = models.DateTimeField(auto_now=True)

Fiou ! Enfin terminé. Ce chapitre s'apparente plus à une annexe qu'autre chose mais bon, il était pour moi un élément essentiel et fait partie intégrante du tutoriel. Je n'ai abordé qu'une partie des champs disponibles, ceux qui vous serons les plus utiles pour être précis. Si vous voulez en découvrir d'autres, la documentation est là. :)

Maintenant que vous connaissez plus de champs que CharField et TextField, je vas pouvoir vous lâcher dans un T.P. comme des grands ! C'est dans le prochain chapitre...
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 28/11/2007 à 16:34:52
Modifié : le 22/08/2008 à 15:56:13
Avancement : 100%
Licence : Copie non autorisée

0 commentaire

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 94 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0737s (0.0624s)