Django 如何使用列进行选择?

Django 如何使用列进行选择?,django,django-models,Django,Django Models,这给了我一个错误: “选项”必须是一个包含(实际值、人类可读名称)元组的iterable。 但我不知道如何修复它 谢谢这里有一个例子 class question(models.Model): q = models.CharField(max_length=500) choice1 = models.CharField(max_length=500) choice2 = models.CharField(max_length=500) choice3 = mode

这给了我一个错误:

“选项”必须是一个包含(实际值、人类可读名称)元组的iterable。

但我不知道如何修复它

谢谢

这里有一个例子

class question(models.Model):
    q = models.CharField(max_length=500)
    choice1 = models.CharField(max_length=500)
    choice2 = models.CharField(max_length=500)
    choice3 = models.CharField(max_length=500)
    answer = models.CharField(max_length=500, choices=[choice1, choice2, choice3])
错误消息要求输入一个
iterable
,它可以是
列表
元组
、或生成器表达式等。在本例中,它是一个
元组
。元组包含成对的值。该对的第一个值是存储在字段
personnelsex
中的值,而第二个值是“人类可读的名称”,将在应用程序中显示给用户

在您的代码中,没有包含选项的iterable,当必须有两个选项(成对)时,每个选项只有一个条目,并且没有必需的值。

下面是一个示例

class question(models.Model):
    q = models.CharField(max_length=500)
    choice1 = models.CharField(max_length=500)
    choice2 = models.CharField(max_length=500)
    choice3 = models.CharField(max_length=500)
    answer = models.CharField(max_length=500, choices=[choice1, choice2, choice3])
错误消息要求输入一个
iterable
,它可以是
列表
元组
、或生成器表达式等。在本例中,它是一个
元组
。元组包含成对的值。该对的第一个值是存储在字段
personnelsex
中的值,而第二个值是“人类可读的名称”,将在应用程序中显示给用户


在您的代码中,没有包含选项的iterable,当必须有两个选项(成对)时,每个选项只有一个条目,并且没有必需的值。

您必须使用
选项
字段,或者为“问题”和“选项”创建两个不同的模型,包括它们之间的关系

如果创建
选项
字段,则无法为一个问题插入多个值

示例:

personnelsex_choices = (('M','Male'),('F','Female'))
personnelsex = models.CharField('Gender',max_length=1,choices=personnelsex_choices, null=True)
class question(models.Model):
    ANSWER_CHOICES = [
        (F, 'Freshman'),
        (S, 'Sophomore'),
        (J, 'Junior'),
        (S, 'Senior'),
    ]

    question = models.CharField(max_length=500)
    answer = models.CharField(
        max_length=1,
        choices=ANSWER_CHOICES,
        null=TRUE,
    )

另一方面,两种不同的模型将有效地解决您的问题

示例:

personnelsex_choices = (('M','Male'),('F','Female'))
personnelsex = models.CharField('Gender',max_length=1,choices=personnelsex_choices, null=True)
class question(models.Model):
    ANSWER_CHOICES = [
        (F, 'Freshman'),
        (S, 'Sophomore'),
        (J, 'Junior'),
        (S, 'Senior'),
    ]

    question = models.CharField(max_length=500)
    answer = models.CharField(
        max_length=1,
        choices=ANSWER_CHOICES,
        null=TRUE,
    )

您必须使用
选项
字段,或者为“问题”和“选项”创建两个不同的模型,包括它们之间的关系

如果创建
选项
字段,则无法为一个问题插入多个值

示例:

personnelsex_choices = (('M','Male'),('F','Female'))
personnelsex = models.CharField('Gender',max_length=1,choices=personnelsex_choices, null=True)
class question(models.Model):
    ANSWER_CHOICES = [
        (F, 'Freshman'),
        (S, 'Sophomore'),
        (J, 'Junior'),
        (S, 'Senior'),
    ]

    question = models.CharField(max_length=500)
    answer = models.CharField(
        max_length=1,
        choices=ANSWER_CHOICES,
        null=TRUE,
    )

另一方面,两种不同的模型将有效地解决您的问题

示例:

personnelsex_choices = (('M','Male'),('F','Female'))
personnelsex = models.CharField('Gender',max_length=1,choices=personnelsex_choices, null=True)
class question(models.Model):
    ANSWER_CHOICES = [
        (F, 'Freshman'),
        (S, 'Sophomore'),
        (J, 'Junior'),
        (S, 'Senior'),
    ]

    question = models.CharField(max_length=500)
    answer = models.CharField(
        max_length=1,
        choices=ANSWER_CHOICES,
        null=TRUE,
    )

您想编辑选项吗?可以硬编码吗?您想编辑选项吗?可以硬编码吗?