【问题标题】:Is there a built-in way to return validated form fields in django?是否有内置方法可以在 django 中返回经过验证的表单字段?
【发布时间】:2012-03-19 12:03:11
【问题描述】:

我想获取所有通过验证的 django 表单字段,以便在每次验证尝试时保存部分数据,然后返回到带有验证错误的模板。但是,如果存在验证错误,则 clean() 方法不会返回任何数据。

有什么简单的方法可以只获取经过验证的字段并将它们传递给 save()?

【问题讨论】:

    标签: django forms validation


    【解决方案1】:

    最简单的方法是重写clean 方法,将没有错误的数据保存到另一个属性,例如self.partial_cleaned

    【讨论】:

    • 所以你是说没有内置的方法可以做到这一点?在这里覆盖clean 对我来说是最后的手段,但如果没有其他办法,这就是我要做的。
    • @Maiiku 不,我是说这样做的内置方法是覆盖干净。这就是它的用途 - 自定义表单处理执行其验证周期的方式。
    • 并非如此 - 因为如果验证通过,则会返回完整结果,并且当出现错误时会填充错误列表,我希望您的 partial_cleaned 属性开箱即用,而不是必须使用覆盖的 clean 方法创建一些模板表单,所有其他表单都必须扩展。但如果这是唯一的方法,那就这样吧。我再等一天,如果没有其他人贡献我会接受你的回答。
    • @Maiiku 您似乎认为继承是某种困难而奇异的操作。真的不是。
    • 几乎没有。我只是想在已经非常庞大的应用程序中节省另一层复杂性。每次您引入一个覆盖默认函数并由所有派生类实现的模板模型时,您都会使代码变得更复杂,以便为其他程序员破译 - 如果可以避免这种情况,我宁愿避免它。问题是我们似乎每时每刻都在压倒一切,所以在这一点上,我宁愿先探索已经存在的东西。
    猜你喜欢
    • 2011-06-11
    • 2012-05-12
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多