1.1 KiB
1.1 KiB
Title | Tags |
---|---|
Valider des données sur un modèle Django | django, python, model |
Quand on utilise l'ORM de Django, il existe trois niveaux de validation:
- Les validateurs associés directement au niveau du champ du modèle
- Le nettoyage des champs
- Le nettoyage global du modèle.
Validateurs
La première manière de valider le contenu d'un champ est aussi la plus simple. En prenant un modèle type:
from django.db import models
def validate_title(value):
if 't' not in value:
raise ValidationError('Title does not start with T')
class Bidule(models.Model):
title = models.CharField(max_length=255, validators=[validate_title])
Clean_<field_name>
Ca, c'est le deuxième niveau. Le contexte donne accès à déjà plus d'informations et permet de valider les informations en interogeant (par exemple) la base de données.
class Bidule(models.Model):
def clean_title(self):
raise ValidationError('Title does not start with T')
Clean
class Bidule(models.Model):
def clean(self):
raise ValidationError('Title does not start with T')