Sobes.tech
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("შეკვეთა მიწოდებულია")