【发布时间】:2015-05-06 23:59:54
【问题描述】:
按照django documentation,我尝试在我的 models.py:
class MyModel(Model):
ACTION_CHOICES = (
('d', 'delete'),
('c', 'create'),
('u', 'update'),
)
action = CharField(max_length=1, choices=ACTION_CHOICES)
但是当我运行它时
action = MyModel(action='create')
action.save()
并检查数据库操作不是c,而是create。此外,即使对 max_length 的限制也不会影响它。好的,我继续前进并尝试以这种方式进行:
models.py
class MyModel(Model):
ACTION_CHOICES = (
(1, 'delete'),
(2, 'create'),
(3, 'update'),
)
action = IntegerField(max_length=1, choices=ACTION_CHOICES)
code.py:
action = MyModel(action='create')
action.save()
但我得到一个错误,即 str 字段无法像 int 一样保存(数据库有 int 字段,但 MyModel.action 是 str)我在这里错过了什么?选择不应该在保存时转换价值吗?
最好的问候,
【问题讨论】:
标签: django django-models