Lors de la création d'une application avec Django seul, il peut être préférable de valider avec le formulaire, mais si vous fournissez principalement une API en tant que Django REST Framework, vous souhaitez également valider avec Model Voici un exemple de validation des champs de numéro de téléphone et de code postal
models.py
from django.db import models
from django.core.validators import RegexValidator
class SampleModel(model.model):
tel_number_regex = RegexValidator(regex=r'^[0-9]+$', message = ("Tel Number must be entered in the format: '09012345678'. Up to 15 digits allowed."))
tel_number = models.CharField(validators=[tel_number_regex], max_length=15, verbose_name='numéro de téléphone')
postal_code_regex = RegexValidator(regex=r'^[0-9]+$', message = ("Postal Code must be entered in the format: '1234567'. Up to 7 digits allowed."))
postal_code = models.CharField(validators=[postal_code_regex], max_length=7, verbose_name='Code postal')
De cette façon, vous pouvez valider avec des expressions régulières. Si vous envoyez une demande qui ne correspond pas, le message défini pour chacun sera renvoyé
Si vous souhaitez sauvegarder l'enregistrement avec des traits d'union, il est préférable d'écrire une expression régulière appropriée dans regex =
En passant, j'aimerais pouvoir définir max_length lorsque j'ai défini chaque expression régulière, mais je ne pouvais pas.
Recommended Posts