Middle
Wofür wird IntegerChoices in Django verwendet?
sobes.tech KI
Antwort von AI
IntegerChoices in Django wird verwendet, um eine Menge von benannten Ganzzahlkonstanten zu definieren. Es bietet eine bequeme und lesbare Möglichkeit, einen festen Satz von numerischen Werten darzustellen, wie z.B. Status oder Typen, die mit Model-Feldern verbunden sein können.
Die Hauptvorteile der Verwendung von IntegerChoices:
- Lesbarkeit des Codes: Die Namen der Konstanten machen die Absicht des Codes klarer als die Verwendung "magischer" Zahlen.
- Verbesserte Unterstützung in Formularen und Admin-Interface: Django generiert standardmäßig Auswahl-Widgets (select widgets) mit gut lesbaren Labels basierend auf den Konstantennamen.
- Fehlervermeidung: Die Verwendung von Konstanten anstelle direkter numerischer Werte verringert die Wahrscheinlichkeit von Tippfehlern.
- Zentralisierte Verwaltung: Alle möglichen Werte sind an einem Ort gesammelt.
Beispiel für die Verwendung:
# choices.py oder models.py
from django.db import models
class OrderStatus(models.IntegerChoices):
PENDING = 0, 'Ausstehend'
PROCESSING = 1, 'In Bearbeitung'
SHIPPED = 2, 'Versendet'
DELIVERED = 3, 'Geliefert'
CANCELLED = 4, 'Storniert'
# models.py
from django.db import models
from .choices import OrderStatus # Wenn OrderStatus in einer anderen Datei definiert ist
class Order(models.Model):
status = models.IntegerField(
choices=OrderStatus.choices,
default=OrderStatus.PENDING,
)
created_at = models.DateTimeField(auto_now_add=True)
# Im Code
order = Order.objects.create(status=OrderStatus.PROCESSING)
if order.status == OrderStatus.DELIVERED:
print("Bestellung geliefert")