Peewee 限制了 Field 中的 choices,为什么仍然可以插入其他数据?

最近看到 Peewee 这个超简洁的 Python ORM,试着用了下,定义 User 模型:

USER_ROLE = ('user', 'admin')

class User(BaseModel):
    username = CharField()
    role = CharField(choices=USER_ROLE, default='user') 

创建表单后插入数据,注意这个 role 并不在我的 choices

k = User(username='admin', role='chairman')
k.save()

发现竟然插入成功了,可是我明明限制了 choices 啊,为什么会这样呢?

阅读 6.7k
2 个回答

其实官方文档已经给出解释:
peeweechoices只做了元数据的声明,并不作验证,你必须在你的代码里进行约束和验证。

是不是限制写错了?应该是USER_ROLE = {('user'), ('admin')},我不确定。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题