You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:25:40