Middle
Waarvoor wordt IntegerChoices gebruikt in Django?
sobes.tech AI
Antwoord van AI
IntegerChoices in Django wordt gebruikt om een set genummerde constanten met naam te definiëren. Het biedt een handige en leesbare manier om een vaste reeks numerieke waarden weer te geven, zoals statussen of typen, die gekoppeld kunnen worden aan modelvelden.
De belangrijkste voordelen van het gebruik van IntegerChoices:
- Leesbaarheid van de code: De namen van de constanten maken de intentie van de code duidelijker dan het gebruik van "magische" getallen.
- Betere ondersteuning in formulieren en beheerdersinterface: Django genereert standaard select-widgets met leesbare labels gebaseerd op de namen van de constanten.
- Voorkomen van fouten: Het gebruik van constanten in plaats van directe numerieke waarden vermindert de kans op typefouten.
- Gecentraliseerd beheer: Alle mogelijke waarden worden op één plek verzameld.
Voorbeeld van gebruik:
# choices.py of models.py
from django.db import models
class OrderStatus(models.IntegerChoices):
PENDING = 0, 'In afwachting'
PROCESSING = 1, 'In verwerking'
SHIPPED = 2, 'Verzonden'
DELIVERED = 3, 'Afgeleverd'
CANCELLED = 4, 'Geannuleerd'
# models.py
from django.db import models
from .choices import OrderStatus # Als OrderStatus in een ander bestand staat
class Order(models.Model):
status = models.IntegerField(
choices=OrderStatus.choices,
default=OrderStatus.PENDING,
)
created_at = models.DateTimeField(auto_now_add=True)
# In de code
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
print("Bestelling afgeleverd")