فیلدهای اسکالر (Scalar Fields)


فیلدهای اسکالر، ساده‌ترین و رایج‌ترین نوع فیلدها هستند که مقادیر ساده را ذخیره می‌کنند — یعنی هر فیلد فقط یک مقدار ساده (مثل متن، عدد، تاریخ یا بولین) را نگه می‌دارد. این فیلدها مستقیماً به ستون‌های ساده در دیتابیس تبدیل می‌شوند.

الف) فیلدهای متنی:

  • CharField: برای رشته‌های کوتاه با طول مشخص (max_length اجباری است).
  • TextField: برای متن‌های بلند — بدون محدودیت طول.
  • EmailField: اعتبارسنجی ایمیل + محدودیت طول.
  • SlugField: برای URLها — فقط حروف، اعداد، خط تیره و زیرخط.
  • URLField: اعتبارسنجی آدرس اینترنتی.
 

ب) فیلدهای عددی:

  • IntegerField, BigIntegerField, SmallIntegerField: اعداد صحیح با دامنه‌های مختلف.
  • PositiveIntegerField, PositiveSmallIntegerField: فقط اعداد مثبت.
  • DecimalField: اعداد اعشاری با دقت بالا — مناسب امور مالی.
  • FloatField: اعداد اعشاری با دقت متوسط (با خطای گرد کردن).
 

ج) فیلدهای تاریخ و زمان:

  • DateField: فقط تاریخ (YYYY-MM-DD)
  • DateTimeField: تاریخ + زمان
  • TimeField: فقط زمان (HH:MM:SS)
 

د) فیلدهای بولین و انتخابی:

  • BooleanField: True/False
  • choices: برای محدود کردن مقادیر مجاز (مثلاً وضعیت‌ها)

 

class Sample(models.Model):
    name = models.CharField(max_length=200)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    created_at = models.DateTimeField(auto_now_add=True)
    is_available = models.BooleanField(default=True)
    status = models.CharField(max_length=20, choices=(('ON', 'Active'), ('OFF', 'Inactive')))