Middle
K čemu slouží IntegerChoices v Django?
sobes.tech AI
Odpověď od AI
V Django se IntegerChoices používá k definování sady pojmenovaných celočíselných konstant. Poskytuje pohodlný a čitelný způsob, jak reprezentovat pevnou sadu číselných hodnot, například stavy nebo typy, které mohou být spojeny s poli modelu.
Hlavní výhody používání IntegerChoices:
- Čitelnost kódu: Názvy konstant činí záměr kódu jasnější než použití "magických" čísel.
- Lepší podpora ve formulářích a administračním rozhraní: Django automaticky generuje widgety pro výběr (select widgets) s čitelnými štítky založenými na názvech konstant.
- Prevence chyb: Použití konstant místo přímých číselných hodnot snižuje pravděpodobnost překlepů.
- Centralizované řízení: Všechny možné hodnoty jsou shromážděny na jednom místě.
Příklad použití:
# choices.py nebo models.py
from django.db import models
class OrderStatus(models.IntegerChoices):
PENDING = 0, 'Čeká na vyřízení'
PROCESSING = 1, 'V procesu'
SHIPPED = 2, 'Odesláno'
DELIVERED = 3, 'Doručeno'
CANCELLED = 4, 'Zrušeno'
# models.py
from django.db import models
from .choices import OrderStatus # Pokud je OrderStatus definován v jiném souboru
class Order(models.Model):
status = models.IntegerField(
choices=OrderStatus.choices,
default=OrderStatus.PENDING,
)
created_at = models.DateTimeField(auto_now_add=True)
# V kódu
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
print("Objednávka doručena")