====== Modèles ====== ===== Définition des modèles ===== Dans le module **models.py** d'une application : from django.db import models class Author(models.Model): name = models.CharField(max_length=100, unique=True) def __str__(self): return self.name class Book(models.Model): title = models.CharField(max_length=200) quantity = models.IntegerField(default = 1) author = models.ForeignKey(Author, on_delete=models.DO_NOTHING) def __str__(self): return self.title Paramètres : | blank | | | default | | | max_length | | | null | | | primary_key | True/False | | unique | True/False | | ... | | Types : | BooleanField | | | CharField | | | DateField | | | DateTimeField | | | EmailField | | | FloatField | | | ForeignKey | Clé étrangère : Jointure vers un autre modèle | | IntegerField | | | ... | | Valeurs pour **on_delete** : | models.CASCADE | | | models.DO_NOTHING | | | ... | | ===== Administration ===== Référencer le modèle dans l'administration de Django. Dans le module **admin.py** de l'application : from django.contrib import admin from .models import Author, Book admin.site.register(Author) admin.site.register(Book) ===== Migrations ===== Créer les migrations : python manage.py makemigrations Appliquer les migrations : python manage.py migrate ===== Requêtes ===== Lire tous les enregistrements et accéder aux champs : from .models import Book books = Book.objects.all() for book in books: # lire les propriétés de la classe Book titre = book.title qte_stock = book.quantity # la jointure avec la classe Author se fait automatiquement nom_auteur = book.author.name