Sobes.tech
Middle

Ի՞նչ նպատակով է օգտագործվում IntegerChoices-ը Django-ում։

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("Պատվերը առաքված է")