فیلدهای عمومی و کمکی (Generic & Helper Fields)
این فیلدها معمولاً برای مدیریت زیرساخت مدل یا ذخیره اطلاعات سیستمی استفاده میشوند. بعضی از آنها بهصورت خودکار توسط جنگو ایجاد میشوند (مثل id
) و بعضی برای موارد خاص طراحی شدهاند.
الف) AutoField
/ BigAutoField
- فیلد عددی که بهصورت خودکار افزایش مییابد.
- معمولاً به عنوان
id
پیشفرض در هر مدل استفاده میشود.
ب) UUIDField
- ذخیره شناسههای منحصربهفرد جهانی.
- مناسب برای مواردی که نمیخواهید
id
عددی قابل حدس باشد. - حتما باید کتابخانه uuid با دستور import uuid وارد گردد
ج) GenericIPAddressField
- ذخیره آدرس IP (هم IPv4 و هم IPv6).
د) BinaryField
- ذخیره دادههای باینری خام — مثل فایلهای رمزگذاری شده یا بایتها.
- محدودیت در استفاده در فرمها و فیلترها دارد.
import uuid
class smaple(models.Model):
id = models.BigAutoField(primary_key=True)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
ip_address = models.GenericIPAddressField()
encrypted_data = models.BinaryField()
هـ) GenericForeignKey
(از django.contrib.contenttypes
)
- برای ایجاد رابطه به مدلهای مختلف — مکانیزم “Generic Relation”.
- مثال: سیستم کامنت که برای مقاله، محصول و ویدیو کار کند.
- نیازمند دو فیلد کمکی (
content_type
وobject_id
) است.