Python django分类模型实例

Python django分类模型实例,python,django,django-models,Python,Django,Django Models,当我跑步时: python3 manage.py makemigrations 保存以下代码后,显示错误: todo.Task.status:(fields.E005)'choices'必须是包含(实际值、人类可读名称)元组的iterable 我想根据todo对每个任务实例进行分类,完整或不完整。此属性将在创建每个任务实例时指定。任务将显示在HTML页面的不同列上 以下代码不起作用: from django.db import models STATUS_CHOICES = ('compl

当我跑步时:

python3 manage.py makemigrations 
保存以下代码后,显示错误:

todo.Task.status:(fields.E005)'choices'必须是包含(实际值、人类可读名称)元组的iterable

我想根据todo对每个任务实例进行分类,完整或不完整。此属性将在创建每个任务实例时指定。任务将显示在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}")

请提供帮助。

尝试为每个选项指定一个值

STATUS_CHOICES = (
    ('com','complete'),
    ('inc','incomplete'),
    ('to','todo'),
)

当然,您可以选择从django documentation:Field.choices中选择所需的任何值

一种iterable(如列表或元组),由正好两个项(如[(a,B),(a,B)…])的iterable组成,用作此字段的选项。如果给定此选项,则默认表单小部件将是一个包含这些选项的选择框,而不是标准文本字段

每个元组中的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称。例如:

YEAR_IN_SCHOOL_CHOICES = (
    ('FR', 'Freshman'),
    ('SO', 'Sophomore'),
    ('JR', 'Junior'),
    ('SR', 'Senior'),
   )