【问题标题】:django - request.POST missing?django - request.POST 丢失?
【发布时间】:2012-09-18 10:28:42
【问题描述】:

所以我在这个答案中看到了:

http://stackoverflow.com/a/11072057/1061426

有人说:

改变这一行:

form = StatementForm(request.POST, initial={'time': d.strftime("%Y-%m-%d %H:%M:%S"), 'user':loggedin_user, 'views':0})

为此:

form = StatementForm(initial={'time': d.strftime("%Y-%m-%d %H:%M:%S"),'user':loggedin_user, 'views':0})

包含 request.POST 和不包含有什么区别?或者,更重要的是 - 如果值 X 没有 在 request.POST 中设置,但 包含在初始数组中,那么 is_valid() 的 X 值是多少方法见?

编辑:我想我要问的是〜在上面优先吗?如果添加了 request.POST 和初始值,初始值是否会覆盖 request.POST 值?是否可以覆盖“空”值?
(在我涉及的问题中,当方法是 get 时,作者错误地使用 request.POST 为 StatementForm 播种,这给他带来了问题。)

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    initial 是一个参数,用于在运行时设置表单的初始值。

    现在,request.POST 用于绑定表单以发布数据。例如,当使用POST 从浏览器提交表单时,所有相关字段都将分配给它可以在request.POST 中找到的form 对象

    如果 X 未在表单中设置,则从初始值(如果存在)获取值。

    你可以阅读initial here

    【讨论】:

    • 但这并不能回答问题...我已经编辑得更清楚了!
    • 表单有一个属性 has_changed。如果 POST 请求中的某些内容发生了变化,则它会采用该值,如果没有,则采用初始值(如果存在)。自己试试吧。你会知道..这是一个非常简单的概念。
    猜你喜欢
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 2017-10-12
    • 2011-08-12
    • 2017-09-24
    相关资源
    最近更新 更多