Middle
Djangoда IntegerChoices эмне үчүн колдонулат?
sobes.tech AI
AIден жооп
Django'da IntegerChoices nomlanmış butun raqamli doimiylarni belgilash uchun ishlatiladi. Bu, model maydonlari bilan bog'liq bo'lishi mumkin bo'lgan, holatlar yoki turlar kabi, belgilangan raqamli qiymatlarning qulay va o'qilishi oson tarzda ifodalash imkonini beradi.
IntegerChoices dan foydalanishning asosiy afzalliklari:
- Kod o'qilishi: Doimiylarning nomlari, "sihirli" raqamlar o'rniga, kodning ma'nosini yanada aniqroq qiladi.
- Forma va administrator interfeysida yaxshilangan qo'llab-quvvatlash: Django, odatda, doimiy nomlariga asoslangan o'qilishi oson etiketkalar bilan tanlov vidjetlarini (select widgets) avtomatik ravishda yaratadi.
- Xatoliklarni oldini olish: Doimiylardan foydalanish, to'g'ridan-to'g'ri raqamli qiymatlardan foydalanishga nisbatan, yozishda xatolik qilish ehtimolini kamaytiradi.
- Markazlashtirilgan boshqaruv: Barcha mumkin bo'lgan qiymatlar bitta joyda to'plangan.
Foydalanish misoli:
# choices.py yoki models.py
from django.db import models
class OrderStatus(models.IntegerChoices):
PENDING = 0, 'Kutilmoqda'
PROCESSING = 1, 'Ish jarayonida'
SHIPPED = 2, 'Yuborildi'
DELIVERED = 3, 'Yetkazildi'
CANCELLED = 4, 'Ləğv olundu'
# models.py
from django.db import models
from .choices import OrderStatus # Agar OrderStatus boshqa faylda bo'lsa
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("Buyurtma yetkazildi")