【发布时间】:2011-09-22 11:08:19
【问题描述】:
我们有一个现有的 Django 表单,它接受 GET 请求以允许用户为他们生成的查询参数添加书签。该表单包含许多字段,其中大部分是必需的。该表单使用半标准样板来处理请求,用 GET 代替 POST:
if request.method == 'GET':
form = myForm(request.GET)
if form.isValid()
# Gather fields together into query.
else
form = myForm()
问题在于,第一次加载表单时,GET 请求中没有任何内容可用于填充必填字段,因此大多数表单都会显示“缺少字段”错误。
设置初始值不起作用;显然,GET 请求中不存在的值会覆盖它们。
我们如何避免这种情况?我很确定我们根本没有正确处理事情,但我找不到处理 GET 请求的表单示例。我们希望在用户在字段为空白或其他无效的情况下点击“提交”按钮时显示错误,但不希望在最初显示表单时显示这些错误。
【问题讨论】:
-
为什么不直接使用 request.POST 和处理表单数据的标准方式?