মডেল ভ্যালিডেশন করা

মডেল ভ্যালিডেশন করা

স্ট্রিং লেন্থ চেক:

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