🤔 Для чего используется IntegerChoices?
IntegerChoices в Django используется для создания выбора из ограниченного набора целочисленных значений для поля модели. Это полезно, когда вам нужно ограничить допустимые значения для поля модели определенными целыми числами, и при этом иметь удобные человекочитаемые названия для этих значений.🚩Основные плюсы
🟠Читаемость кода
Значения выбора имеют человекочитаемые названия, что делает код более понятным.
🟠Поддержка валидации
Django автоматически проверяет, что значение поля соответствует одному из допустимых значений.
🟠Удобство использования в админке
В Django admin интерфейсе выпадающий список с человекочитаемыми названиями делает работу с данными удобнее.
🚩Пример использования
1⃣Создание класса
IntegerChoicesfrom django.db import models
class Status(models.IntegerChoices):
PENDING = 1, 'Pending'
APPROVED = 2, 'Approved'
REJECTED = 3, 'Rejected'
2⃣Использование
IntegerChoices в моделиfrom django.db import models
class Application(models.Model):
status = models.IntegerField(choices=Status.choices, default=Status.PENDING)
name = models.CharField(max_length=100)
submitted_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.name} - {self.get_status_display()}"
3⃣Пример работы с моделью
# Создание новой записи
app = Application.objects.create(name='John Doe')
# Проверка статуса
print(app.status) # 1
print(app.get_status_display()) # 'Pending'
# Изменение статуса
app.status = Status.APPROVED
app.save()
# Проверка обновленного статуса
print(app.status) # 2
print(app.get_status_display()) # 'Approved'
👉Новости 👉Платформа