Django 如何使用列进行选择?
这给了我一个错误: “选项”必须是一个包含(实际值、人类可读名称)元组的iterable。 但我不知道如何修复它 谢谢这里有一个例子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
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,
)
您想编辑选项吗?可以硬编码吗?您想编辑选项吗?可以硬编码吗?