Sobes.tech
Middle

Milleks kasutatakse IntegerChoices Django's?

sobes.tech AI

Vastus AI-lt

IntegerChoices Django-s kasutatakse nimede jaotamiseks määratletud täisarvuliste konstantide kogumi jaoks. See pakub mugavat ja loetavat viisi fikseeritud arvväärtuste, näiteks staatuste või tüüpide, esitamiseks, mis võivad olla seotud mudeli väljadega.

IntegerChoices kasutamise peamised eelised:

  • Koodi loetavus: Konstantide nimed muudavad koodi eesmärgi selgemaks kui "maagilised" numbrid.
  • Paranenud tugi vormides ja administraatori liideses: Django genereerib vaikimisi valikukomplekte (select widgets) loetavate märkmetega, mis põhinevad konstantide nimedel.
  • Vigade ennetamine: Konstantide kasutamine otse arvväärtuste asemel vähendab trükivigu.
  • Keskne haldus: Kõik võimalikud väärtused on kogutud ühte kohta.

Näide kasutamisest:

# choices.py või models.py
from django.db import models

class OrderStatus(models.IntegerChoices):
    PENDING = 0, 'Ootel'
    PROCESSING = 1, 'Töös'
    SHIPPED = 2, 'Saadetud'
    DELIVERED = 3, 'Toimetatud'
    CANCELLED = 4, 'Tühistatud'

# models.py
from django.db import models
from .choices import OrderStatus # Kui OrderStatus on määratletud teises failis

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

# Koodis
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
    print("Tellimus on toimetatud")