Middle
Django-da IntegerChoices nə üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Django-da IntegerChoices, adlandırılmış tam ədəd sabitlərinin bir dəstini təyin etmək üçün istifadə olunur. Bu, model sahələri ilə əlaqəli ola biləcək statü və ya növlər kimi, sabit ədədi dəyərlərin sabit və oxunaqlı şəkildə təmsil olunmasını təmin edir.
IntegerChoices istifadə etmənin əsas üstünlükləri:
- Kodun oxunaqlılığı: Sabitlərin adları, "sihirli" ədədlərdən istifadə etməkdən daha aydın kod məqsədini göstərir.
- Formalar və inzibati interfeysdə yaxşı dəstək: Django, standart olaraq, sabitlərin adlarına əsaslanan oxunaqlı etiketlərlə seçim vidgetləri (select widgets) yaradır.
- Xətaların qarşısını alma: Sabitlərdən istifadə, birbaşa ədədi dəyərlərdən istifadə etməyə nisbətən, yazım səhvlərinin ehtimalını azaldır.
- Mərkəzləşdirilmiş idarəetmə: Bütün mümkün dəyərlər tək bir yerdə toplanır.
İstifadə nümunəsi:
# choices.py və ya models.py
from django.db import models
class OrderStatus(models.IntegerChoices):
PENDING = 0, 'Gözləmədə'
PROCESSING = 1, 'İşləmədə'
SHIPPED = 2, 'Göndərilib'
DELIVERED = 3, 'Təqdim olunub'
CANCELLED = 4, 'Ləğv olunub'
# models.py
from django.db import models
from .choices import OrderStatus # Əgər OrderStatus başqa faylda təyin olunubsa
class Order(models.Model):
status = models.IntegerField(
choices=OrderStatus.choices,
default=OrderStatus.PENDING,
)
created_at = models.DateTimeField(auto_now_add=True)
# Kodda
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
print("Sifariş çatdırılıb")