• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 12/12/19

Enregistrez des informations

Log in or subscribe for free to enjoy all this course has to offer!

 

Dans la partie précédente vous avez appris les bases de l'architecture Modèle - Vue - Template en créant les quatre vues principales de l'application.

Cette partie se concentre sur le modèle afin d'ajouter des éléments dans la base de données. Dans ce chapitre, nous allons justement créer le modèle Artist pour enregistrer les artistes. C'est parti !

Diagramme SQL

Avant de démarrer un projet, j'aime réaliser un diagramme SQL. Il représente les tables présentes dans la base de données, les champs attendus ainsi que les relations. Cela me permet de garder en tête une vue globale de l'application ainsi et des relations entre les tables.

Commencez donc par réaliser ce diagramme avant de voir ma solution ! Je vous conseille l'incontournable outil SQL Designer pour le réaliser.

Un modèle représentant une table de la base de données, notre application en comptera quatre :

  • Artist  : représente un artiste. Un artiste contribue à un ou plusieurs albums.

  • Contact  : représente un client potentiel. Il peut avoir plusieurs réservations.

  • Album  : représente un CD. Un album peut avoir plusieurs artistes et ne peut être réservé qu'une seule fois.

  • Booking  : représente une réservation. Elle peut avoir un seul album et appartient à un prospect.

Pourquoi la table AlbumArtist n'est pas associée à un Modèle ?

Cette table existe car il y a une relation many-to-many entre les tables Artist et Album. Pour en savoir plus, lisez le chapitre Mettez en oeuvre les différents types de relations à l'aide des clés étrangères.

Bien, il est temps de créer le premier modèle !

Le modèle Artist

En reprenant le diagramme ci-dessus, nous voyons que la table Artist contient un seul champ : name. Elle ne sera pas très longue à créer ! :)

Avant de continuer, mettez à jour les vues afin de ne plus importer les modèles : nous allons y réaliser de grands changements qui perturberont les vues.

views.py

# from .models import ALBUMS # commentez cette ligne

Ouvrez le fichier models.py. Remplacez les dictionnaires précédents par ces quelques lignes :

models.py

from django.db import models
class Artist(models.Model):
name = models.CharField(max_length=200, unique=True)

Dans Django, chaque modèle est représenté par une classe qui hérite de models.Model. C'est cet héritage qui crée le lien entre la représentation d'une table (en Python) et la table en elle-même (en SQL).

Dans mon exemple, j'ai créé une nouvelle classe Artist qui hérite de models.Model. Puis j'ai indiqué qu'elle avait un attribut de classe, name, qui est une chaîne de caractères. En paramètres, j'ai indiqué que sa longueur maximum est de 200 caractères et que sa valeur doit être unique. Ainsi, l'utilisateur ne pourra enregistrer deux fois un artiste du même nom. Plutôt pratique !

Le nom de la classe représente le nom de la table correspondante dans la base de données. Chaque attribut de classe représente un nouveau champ de cette table.

Pourquoi ne pas avoir indiqué le champ id? Il est pourtant dans le diagramme...

Bien vu ! Il n'est pas nécessaire d'ajouter l'identifiant : Django le fait par défaut à la création de la table. Voici par exemple la requête SQL correspondant au modèle Artist :

CREATE TABLE store_artist ( "id" serial NOT NULL PRIMARY KEY, "name" varchar(200) NOT NULL UNIQUE );

 

Notre modèle est prêt !

Dans le chapitre suivant, vous ajouterez les trois modèles restants et vous apprendrez à ajouter des liaisons entre les tables. Avant d'y arriver, prenez quelques instants pour lire la documentation officielle. Très bien réalisée, elle vous montrera d'autres exemples qui vous aideront à mieux comprendre le concept.

Code du chapitre

Retrouvez le code de ce chapitre à cette adresse.

Example of certificate of achievement
Example of certificate of achievement