মডেল ভ্যালিডেশন করা
মডেল ভ্যালিডেশন করা
স্ট্রিং লেন্থ চেক:
from django.core.validators import MaxLengthValidator, MinLengthValidator
class Book(models.Model):
title = models.CharField(max_length=100, validators=[MaxLengthValidator(100), MinLengthValidator(5)])
ইমেল যাচাই:
from django.core.validators import EmailValidator
class Author(models.Model):
email = models.EmailField(validators=[EmailValidator()])
ফোন নম্বর যাচাই:
from django.core.validators import RegexValidator
from django.db import models
class UserProfile(models.Model):
phone_regex = RegexValidator(
regex=r'^\+?1?\d{9,15}$',
message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed."
)
phone_number = models.CharField(validators=[phone_regex], max_length=17)
পূর্ণসংখ্যা যাচাই:
from django.core.validators import MinValueValidator, MaxValueValidator
class Rating(models.Model):
stars = models.PositiveIntegerField(validators=[MinValueValidator(1), MaxValueValidator(5)])
তারিখ যাচাই:
from django.core.validators import DateValidator
from django.db import models
class Event(models.Model):
date = models.DateField(validators=[DateValidator()])
ইনফরম্ড ডেটা যাচাই:
from django.core.validators import URLValidator
from django.db import models
class Website(models.Model):
url = models.URLField(validators=[URLValidator()])
Default ভ্যালিডেশন ফাংশন:
from django.core.exceptions import ValidationError
class Item(models.Model):
quantity = models.PositiveIntegerField(default=0)
def clean(self):
if self.quantity == 0:
raise ValidationError("Quantity cannot be 0.")
কাস্টম ভ্যালিডেশন ফাংশন:
from django.core.exceptions import ValidationError
def validate_even(value):
if value % 2 != 0:
raise ValidationError(
_('%(value)s is not an even number'),
params={'value': value},
)
class EvenNumber(models.Model):
number = models.IntegerField(validators=[validate_even])
Unique ইউজার দেখা
from django.db import models
from django.core.validators import ValidationError
from django.utils.translation import gettext_lazy as _
def validate_unique_username(value):
existing_users = User.objects.filter(username=value)
if existing_users.exists():
raise ValidationError(
_('%(value)s already exists as a username.'),
params={'value': value},
)
class User(models.Model):
username = models.CharField(
max_length=30,
unique=True,
validators=[validate_unique_username],
)
def __str__(self):
return self.username
Last updated