Middle
Django-ში IntegerChoices რა მიზნით გამოიყენება?
sobes.tech AI
პასუხი AI-სგან
Django-ში IntegerChoices გამოიყენება სახელწოდებული მთელი რიცხვითი კონსტანტების ნაკრების განსაზღვრისთვის. იგი უზრუნველყოფს მოსახერხებელ და წასაკითხავ გზას ფიქსირებული რაოდენობის ნომერული მნიშვნელობების, მაგალითად, სტატუსებისა ან ტიპების, წარმოდგენისთვის, რომლებიც შეიძლება იყოს დაკავშირებული მოდელის ველებთან.
IntegerChoices-ის გამოყენების ძირითადი უპირატესობები:
- კოდის წასაკითხაობა: კონსტანტების სახელები უფრო ნათელია, ვიდრე "მაგიური" რიცხვების გამოყენება.
- კარგი მხარდაჭერა ფორმებსა და ადმინისტრატორის ინტერფეისში: Django ავტომატურად ქმნის არჩევანის ვიჯეტებს (select widgets) წასაკითხავი ლეიბლებით, რომლებიც დაფუძნებულია კონსტანტების სახელებზე.
- შეცდომების თავიდან აცილება: კონსტანტების გამოყენება პირდაპირ რიცხვით მნიშვნელობების ნაცვლად ამცირებს შეცდომების ალბათობას.
- ცენტრალიზებული მართვა: ყველა შესაძლო მნიშვნელობა თავმოყრილია ერთ ადგილას.
გამოყენების მაგალითი:
# choices.py ან models.py
from django.db import models
class OrderStatus(models.IntegerChoices):
PENDING = 0, 'მოლოდინში'
PROCESSING = 1, 'მუშაობაში'
SHIPPED = 2, 'გაგზავნილია'
DELIVERED = 3, 'მიწოდებულია'
CANCELLED = 4, 'გაუქმებულია'
# models.py
from django.db import models
from .choices import OrderStatus # თუ OrderStatus სხვა ფაილშია
class Order(models.Model):
status = models.IntegerField(
choices=OrderStatus.choices,
default=OrderStatus.PENDING,
)
created_at = models.DateTimeField(auto_now_add=True)
# კოდში
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
print("შეკვეთა მიწოდებულია")