Django-models:具有Choices属性的CharField

时间:2012-10-03 09:37:20

标签: django django-models

为什么它不起作用?

DESCSPECSOFT = (
    (u'99','-'),
    (u'Load',u'Load'),
    (u'Script',u'Script'),
    (u'Load & Script',u'Load & Script'),
    )   
descSpecSoft = models.CharField(choices=DESCSPECSOFT, default=99,blank = False,null = False)

由于

编辑:

对于表单而不是模型的SOry我的错误

EDIT2: “ 选项是字符串,但默认值是整数。 您没有提供任何“不工作”含义的信息。“

不工作=在模板中不需要的字段

3 个答案:

答案 0 :(得分:5)

是的,让我们来计算这里的问题。

  1. 您使用了forms.CharField,但不存在。
  2. 即使它确实存在,这也是一个模型,因此您应该使用模型字段而不是表单字段。
  3. 您在定义之前使用过DESCSPECSOFT
  4. 选项是字符串,但默认值是整数。
  5. 您没有提供任何“不工作”含义的信息。

答案 1 :(得分:1)

尝试 forms.ChoiceField() 而不是默认尝试initial = '99'

并且默认情况下还需要表单字段,它们不接受null或空白,try required = True或required = False

答案 2 :(得分:1)

_CharField = partial(models.CharField, max_length=255)

DESCSPECSOFT = model_utils.Choices(
    (u'99','-'),
    (u'load',u'Load'),
    (u'script',u'Script'),
    (u'load_script',u'Load & Script'),
)
descSpecSoft = _CharField(choices=DESCSPECSOFT, default=DESCSPECSOFT.load)

请注意,删除了空白和null,因为默认情况下需要它