当我跑步时:
python3 manage.py makemigrations
保存以下代码后,显示错误:
todo.Task.status :( fields.E005)'选择'必须是包含(实际值,人类可读名称)元组的迭代。
我想根据待办事项,完整或不完整对每个Task实例进行分类。创建每个Task实例时都要指定此属性。任务将显示在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}")
请帮助。
答案 0 :(得分:1)
尝试为每个选择分配一个值
STATUS_CHOICES = (
('com','complete'),
('inc','incomplete'),
('to','todo'),
)
当然,您可以选择任何您想要的值
答案 1 :(得分:0)
:Field.choices
可迭代(例如,列表或元组),其由恰好两个项目(例如[(A,B),(A,B)...])的可迭代组成,以用作该字段的选项。如果给出了这个,则默认表单小部件将是一个带有这些选项的选择框,而不是标准文本字段。
每个元组中的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称。例如:
YEAR_IN_SCHOOL_CHOICES = (
('FR', 'Freshman'),
('SO', 'Sophomore'),
('JR', 'Junior'),
('SR', 'Senior'),
)