Outils pour utilisateurs

Outils du site


python:django:modeles

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
python/django/modeles.txt · Dernière modification: 2023/11/12 10:13 par marclebrun