No active training session available at the moment
Training Menu

Les modèles Django

Priscille mande
Priscille mande
Feb. 2, 2025 · 8.00 min read
3
Django
Les modèles Django

 

Introduction

L'un des concepts fondamentaux de Django est le modèle (Model). Les modèles sont au cœur de la gestion des données dans une application Django. Dans cet article, nous allons explorer ce qu'est un modèle, comment il fonctionne, et comment l'utiliser dans un projets.

 

Qu'est-ce qu'un modèle Django ?

Un modèle Django est une classe Python qui représente une table dans une base de données. Il définit la structure des données, les types de champs, et les relations entre les tables. De façon simple un modèle est une abstraction de la base de données qui permet de manipuler les données de manière orientée objet, sans avoir à écrire directement des requêtes SQL.

 

Création d'un Modèle

         Un modèle est une classe qui hérite de django.db.models.Model. Chaque attribut de la classe représente un champ de la table dans la base de données.

Exemple :

from django.db import models

class Article(models.Model):

    titre = models.CharField(max_length=200)

    contenu = models.TextField()

    date_publication = models.DateTimeField(auto_now_add=True)

    def __str__(self):

        return self.titre

 

titre : Un champ de type CharField pour stocker une chaîne de caractères (ici, le titre de l'article).

contenu : Un champ de type TextField pour stocker un texte long (le contenu de l'article).

date_publication : Un champ de type DateTimeField qui enregistre automatiquement la date et l'heure de création de l'article (auto_now_add=True).

La méthode __str__ est utilisée pour afficher une représentation lisible de l'objet (ici, le titre de l'article).

 

Types de champs disponibles

Django propose de nombre types de champs pour répondre à différents besoins :
 
CharField : Pour les chaînes de caractères courtes (exemple : nom, titre).

TextField : Pour les textes longs (ex : contenu d'un article).

IntegerField : Pour les nombres entiers.

BooleanField : Pour les valeurs booléennes (True/False).

DateField et DateTimeField : Pour les dates et heures.

EmailField : Pour les adresses e-mail.

ForeignKey : Pour les relations un-à-plusieurs entre modèles.

ManyToManyField : Pour les relations plusieurs-à-plusieurs.

 

Relations entre modèles

  • Relation un-à-plusieurs (ForeignKey)

class Auteur(models.Model):

    nom = models.CharField(max_length=100)

class Article(models.Model):

    titre = models.CharField(max_length=200)

    auteur = models.ForeignKey(Auteur, on_delete=models.CASCADE)

 

  • Relation plusieurs-à-plusieurs (ManyToManyField)

class Tag(models.Model):

    nom = models.CharField(max_length=50)

class Article(models.Model):

    titre = models.CharField(max_length=200)

    tags = models.ManyToManyField(Tag)

 

  • Relation un-à-un (OneToOneField)

class Profil(models.Model):

    user = models.OneToOneField(User, on_delete=models.CASCADE)

    bio = models.TextField()

 

Migrations

Les migrations sont un mécanisme de Django pour appliquer les modifications des modèles à la base de données. Chaque fois que vous modifiez un modèle, vous devez créer et appliquer une migration.

python manage.py makemigrations

python manage.py migrate
 
 

Ressources

Documentation officielle de Django sur les modèles

3

Applaudissez pour montrer votre soutien

Priscille mande

Priscille mande

3 Followers · Writer for Django

Je suis une jeune passionnée par le domaine de l'informatique, toujours prête à explorer de nouvelles technologies et à relever des défis.