Sobes.tech
Middle

Kam paredzēts IntegerChoices Django?

sobes.tech AI

Atbilde no AI

Django IntegerChoices tiek izmantots, lai definētu nosaukto veselu skaitļu konstanti. Tas nodrošina ērtu un lasāmu veidu, kā attēlot fiksētu skaitlisko vērtību kopu, piemēram, statusus vai tipus, kas var būt saistīti ar modeļa laukiem.

Galvenās IntegerChoices lietošanas priekšrocības:

  • Koda lasāmība: Konstantes nosaukumi padara koda nodomu skaidrāku nekā "burvju" skaitļu izmantošana.
  • Labāka atbalsts formās un administrācijas saskarnē: Django automātiski ģenerē izvēles logrīkus (select widgets) ar lasāmiem marķieriem, kas balstīti uz konstantes nosaukumiem.
  • Kļūdu novēršana: Konstantes lietošana vietā tiešām skaitliskām vērtībām samazina kļūdu iespējamību.
  • Centralizēta pārvaldība: Visas iespējamās vērtības ir apkopotas vienā vietā.

Piemērs lietošanai:

# choices.py vai models.py
from django.db import models

class OrderStatus(models.IntegerChoices):
    PENDING = 0, 'Gaidīšana'
    PROCESSING = 1, 'Procesā'
    SHIPPED = 2, 'Sūtīts'
    DELIVERED = 3, 'Piegādāts'
    CANCELLED = 4, 'Atcelts'

# models.py
from django.db import models
from .choices import OrderStatus # Ja OrderStatus ir citā failā

class Order(models.Model):
    status = models.IntegerField(
        choices=OrderStatus.choices,
        default=OrderStatus.PENDING,
    )
    created_at = models.DateTimeField(auto_now_add=True)

# Kods
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
    print("Pasūtījums piegādāts")