Django表单is_valid()方法失效问题排查及解决
Django表单is_valid()验证失败问题解决
问题核心是字段类型不匹配:
- 模型中
duration被定义为CharField,但DURATION_CHOICES的选项值是整数(如SEVEN = 7) - 表单提交时传入的是整数值,
CharField无法识别该值为有效选项,导致is_valid()验证失败,对应错误提示:Select a valid choice. 7 is not one of the available choices
解决方案
将models.py中的duration字段类型从CharField改为IntegerField:
# models.py class Auction(models.Model): # 其他代码保持不变 duration = models.IntegerField(choices=DURATION_CHOICES, default=SEVEN)
后续操作
修改字段类型后需要执行数据库迁移,确保字段变更生效:
python manage.py makemigrations python manage.py migrate
内容的提问来源于stack exchange,提问作者cabron
相关产品推荐
相关产品推荐

