【问题标题】:django forms that refresh part of a page刷新页面部分的django表单
【发布时间】:2012-03-14 20:04:50
【问题描述】:

django forms 似乎是为了在提交表单后将用户重定向到不同的页面。
但是,我将有一个动态更新页面,其中表单位于 <div></div> 内,而使用表单信息生成的输出位于同一页面上的第二个 <div></div> 中。提交表单后,只有后者 div 应该更新。类似于 AJAX 方法。

这可能使用 django 表单吗?怎么样?

【问题讨论】:

  • 你不是说 div 而不是 dev 吗?
  • 呃,是的,可以通过使用 Ajax。你的实际问题是什么?
  • 我只是不明白 Ajax 和 django 表单是如何结合在一起的。我相信答案很简单。

标签: ajax django django-forms


【解决方案1】:

你需要 JavaScript。例如,使用 jQuery:

$('form').submit(function() {
    $.post($(this).attr('action'), $(this).serialize(), function(data, textStatus, jqXHR){
        $('.other_div').html(data);
    })
})

注意:如果您的表单包含文件字段,这将不起作用。在这种情况下,依赖这个插件:http://jquery.malsup.com/form/ (function ajaxSubmit)

【讨论】:

  • 因此表单的响应可以简单地放在另一个 div 中。多么简单:)
  • 少即是多,简单更好;)您也可以使用 jQuery 插件 jquery.malsup.com/form。如果您的表单包含文件字段,您将需要它,因为 ajax 上传是 ***** 的痛苦
  • 考虑到form view pattern如何知道返回的结果是有界形式还是应该放在other_div中的代码?
  • 在 $.post 成功函数中,您可以检查数据是否包含表单标签。但是,如果您有这个问题,那么设计就会闻起来。你的观点的代码是什么?模板是什么?我真的很想知道为什么视图有时应该返回一个表单,有时返回一个结果,而只返回两者会更简单。
  • 好的,如果这个答案能解决这个问题,请标记为已回答。在迭代 SO 中未回答的问题列表时,它可以节省时间。 TYIA :)
猜你喜欢
  • 1970-01-01
  • 2019-03-14
  • 2015-12-22
  • 2013-07-27
  • 2023-04-10
  • 1970-01-01
  • 2013-10-28
相关资源
最近更新 更多