انواع فیلد در AbarORM¶
در AbarORM، فیلدها نوع دادههای ذخیره شده در مدلهای پایگاه داده شما را تعریف میکنند. هر نوع فیلد نمایانگر یک نوع خاص از داده است و گزینههایی برای اعتبارسنجی و محدودیتها فراهم میکند. در این راهنما انواع فیلدهای موجود و نحوه استفاده از آنها را بررسی میکنیم.
فیلدهای موجود در پایگاه داده PostgreSQL و SQLite از نظر ساختاری یکسان هستند و برای استفاده به روش مشابه طراحی شده اند، اما برای استفاده از هر یک از پایگاه داده ها، باید از فیلدهایی از همان پایگاه داده در مدل های خود استفاده کنید. به عنوان مثال، مسیر فیلدهای
- sqlite:
abarorm.fields.sqlite
- postgresql:
abarorm.fields.psql
انواع فیلدهای پایه¶
1. CharField¶
- توضیح: نمایانگر یک فیلد متنی با طول حداکثر مشخص است.
- پارامترها:
max_length
: حداکثر تعداد کاراکترهای مجاز.unique
: اگر مقدار آنTrue
باشد، فیلد باید مقادیر یکتایی در سراسر جدول داشته باشد.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.default
: مقدار پیشفرض در صورت عدم ارائه مقدار.- مثال:
2. DateTimeField¶
- توضیح: نمایانگر یک مقدار تاریخ و زمان است.
-
پارامترها:
auto_now
: اگر مقدار آنTrue
باشد، فیلد به طور خودکار به تاریخ و زمان جاری هنگام بروزرسانی رکورد تنظیم خواهد شد.auto_now_add
: اگر مقدار آنTrue
باشد، فیلد به طور خودکار به تاریخ و زمان جاری هنگام ایجاد رکورد تنظیم خواهد شد.
-
مثال:
3. ForeignKey¶
- توضیح: نمایانگر یک رابطه بسیاری به یک بین مدلها است.
-
پارامترها:
to
: مدل مورد نظر که این فیلد به آن اشاره دارد.on_delete
: رفتار هنگام حذف رکورد مرجع را تعریف میکند. گزینههای رایج شامل:CASCADE
: به طور خودکار رکوردهایی که به رکورد حذفشده ارجاع دارند را حذف میکند.SET NULL
: فیلد را بهNULL
تنظیم میکند وقتی رکورد مرجع حذف میشود.PROTECT
: حذف رکورد مرجع را با ایجاد خطا جلوگیری میکند.SET_DEFAULT
: فیلد را به مقدار پیشفرض تنظیم میکند وقتی رکورد مرجع حذف میشود.DO_NOTHING
: هیچکاری انجام نمیدهد و فیلد بدون تغییر باقی میماند.
-
مثال:
4. BooleanField¶
- توضیح: نمایانگر یک مقدار بولی (
True
یاFalse
) است. -
پارامترها:
default
: مقدار پیشفرض برای فیلد در صورت عدم ارائه مقدار.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.
-
مثال:
5. IntegerField¶
- توضیح: نمایانگر یک مقدار صحیح است.
-
پارامترها:
default
: مقدار پیشفرض برای فیلد در صورت عدم ارائه مقدار.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.
-
مثال:
6. FloatField¶
- توضیح: نمایانگر یک عدد اعشاری است.
-
پارامترها:
default
: مقدار پیشفرض برای فیلد در صورت عدم ارائه مقدار.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.
-
مثال:
7. DecimalField¶
- توضیح: نمایانگر یک عدد اعشاری با دقت و مقیاس ثابت است.
-
پارامترها:
max_digits
: حداکثر تعداد ارقام (شامل ارقام صحیح و اعشاری).decimal_places
: تعداد ارقام اعشاری.default
: مقدار پیشفرض برای فیلد در صورت عدم ارائه مقدار.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.
-
مثال:
8. DateField¶
- توضیح: نمایانگر یک تاریخ است.
-
پارامترها:
default
: مقدار پیشفرض برای فیلد در صورت عدم ارائه مقدار.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.
-
مثال:
9. TimeField¶
- توضیح: نمایانگر یک زمان است.
-
پارامترها:
default
: مقدار پیشفرض برای فیلد در صورت عدم ارائه مقدار.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.
-
مثال:
10. TextField¶
- توضیح: نمایانگر یک فیلد متنی بزرگ است.
- پارامترها:
default
: مقدار پیشفرض برای فیلد در صورت عدم ارائه مقدار.null
: اگر مقدار آنTrue
باشد، فیلد میتواند شامل مقادیرNULL
باشد.
- مثال: