Django классифицирует экземпляры модели
Когда я бегу:
python3 manage.py makemigrations
после сохранения приведенного ниже кода, он показывает ошибку:
todo.Task.status: (fields.E005) 'выборы' должны быть повторяемыми, содержащими (фактическое значение, читаемое имя) кортежи.
Я хочу классифицировать каждый экземпляр Задачи в соответствии с заданием, полным или неполным. Это свойство должно быть указано при создании каждого экземпляра задачи. Задачи должны быть показаны в разных столбцах на странице HTML.
Код ниже не работает:
from django.db import models
STATUS_CHOICES = ('complete', 'incomplete', 'todo')
class Task(models.Model):
name = models.CharField(max_length = 128)
due = models.DateTimeField(blank = True, null = True)
status = models.CharField(max_length = 16, choices = STATUS_CHOICES)
def __str__(self):
return (f"{self.name}")
Пожалуйста помоги.
2 ответа
Из документации Django: Field.choices
Итерация (например, список или кортеж), состоящая из итераций ровно двух элементов (например, [(A, B), (A, B) ...]) для использования в качестве выбора для этого поля. Если это указано, виджетом формы по умолчанию будет поле выбора с этими вариантами выбора вместо стандартного текстового поля.
Первый элемент в каждом кортеже - это фактическое значение, которое должно быть установлено в модели, а второй элемент - удобочитаемое имя. Например:
YEAR_IN_SCHOOL_CHOICES = (
('FR', 'Freshman'),
('SO', 'Sophomore'),
('JR', 'Junior'),
('SR', 'Senior'),
)
Попытаться присвоить значение каждому выбору
STATUS_CHOICES = (
('com','complete'),
('inc','incomplete'),
('to','todo'),
)
конечно, это ваш выбор, чтобы выбрать любое значение, которое вы хотите