Middle
Na čo slúži IntegerChoices v Django?
sobes.tech AI
Odpoveď od AI
IntegerChoices v Django sa koristi za definovanie sady pomenovaných celých číselných konštánt. Poskytuje pohodlný a čitateľný spôsob reprezentácie pevného súboru číselných hodnôt, ako sú stavy alebo typy, ktoré môžu byť spojené s poľami modelu.
Hlavné výhody používania IntegerChoices:
- Čitateľnosť kódu: Názvy konštánt robia zámer kódu jasnejším než použitie "magických" čísel.
- Lepšia podpora v formulároch a administračnom rozhraní: Django automaticky generuje widgety na výber (select widgets) s čitateľnými štítkami založenými na názvoch konštánt.
- Prevencia chýb: Použitie konštánt namiesto priameho zadávania číselných hodnôt znižuje pravdepodobnosť preklepov.
- Centralizované riadenie: Všetky možné hodnoty sú zhromaždené na jednom mieste.
Príklad použitia:
# choices.py alebo models.py
from django.db import models
class OrderStatus(models.IntegerChoices):
PENDING = 0, 'Čaká na spracovanie'
PROCESSING = 1, 'V procese'
SHIPPED = 2, 'Odoslané'
DELIVERED = 3, 'Doručené'
CANCELLED = 4, 'Zrušené'
# models.py
from django.db import models
from .choices import OrderStatus # Ak je OrderStatus definovaný v inom súbore
class Order(models.Model):
status = models.IntegerField(
choices=OrderStatus.choices,
default=OrderStatus.PENDING,
)
created_at = models.DateTimeField(auto_now_add=True)
# V kóde
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
print("Objednávka doručená")