背景

使用django,在django使用form进行数据格式化,个别字段会有有一个默认值,使用initial设置默认值,但是在form.is_valid后,发现字段没有默认值。

原因

在django中,initial不等于默认值,相关链接:

https://docs.djangoproject.com/fr/3.0/ref/forms/api/#dynamic-initial-values

  • 字段的初始值打算在HTML中显示。但是,如果用户删除该值,并最终为此字段发送回空白值,则该initial值将丢失。因此,您无法获得默认行为所期望的结果。

  • 该默认行为是:如果值验证过程将采取data说法不包含字段的任何值

解决办法:

initial={"":""}
form=ArticleModel(request.POST)if form.has_changed():
    data = {i: form.cleaned_data[i] for i in form.changed_data}
    data.update({key: val for key, val in init_praram.items() if key not in form.changed_data})


本文地址: http://chenxm.cc/article/1214.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
上一篇: python pymysql利用date_format提取日期时间字段自动输出为字符串而不是datetime
下一篇: django sitemap网址数量太多优化方法
发表评论

还没有留言,还不快点抢沙发?