【问题标题】:choose to edit submitted form through link-lists选择通过链接列表编辑提交的表单
【发布时间】:2012-08-04 03:33:12
【问题描述】:

我有一个转储问题,但我无法找到解决方案。我希望用户能够编辑他提交的表单。这就是为什么我根据所有者的id查询它们的原因

all_reqs = Webrequests.objects.filter(own_id=u_id) 

并将它们加载到模板中:

   {% for a in all_reqs %}
    <li><a href="#">{{ a }}</a></li>
   {% endfor %}

现在我无法管理的是,当用户使用他以前提交的表单之一点击一个链接时,要加载相应的提交表单。如何获取用户选择的表单的 ID?也许用js捕获链接id然后找到表单id?但是如何使用这个 django 模板 for-loop 为链接分配 id?任何其他方式来做我想做的事将不胜感激!

【问题讨论】:

  • 您是否定义了任何用于编辑 Web 请求的 URL?

标签: jquery django django-forms django-templates


【解决方案1】:

我假设您想使用 jquery 通过 AJAX 调用加载 from。

你的思路是对的。只需在链接上添加对象的 id。

<a href="#{{ a.pk }}" id="{{ a.pk }}">{{ a }}</a>

我想将它添加到 href 属性中,但我看到有人更愿意将它添加到 id 属性中。

然后只需将 onClick 事件绑定到标签,读取 id,并根据获取的 id 构建一个 url。 当你有一个有效的 url 时,你可以向 django 发送一个 GET 请求并要求返回一个表单。

$("a").on("click", function(event) {
    event.preventDefault();
    var id = $(this).attr("id");
    var options = {
        url: "http://host.com/webrequests/" + id
    };
    $.when($.ajax(options)).then(function(data) {
        // show the form which should be in data on your page
    });
}

【讨论】:

  • 酷!主要功能有效,但是“显示应该在页面上的数据中的表单”是什么意思?因为 json?我打算用对象的实例(提交的表单)重新呈现提交的表单(这也意味着不同的视图模板)。
  • 不,我只是返回一个包含所有呈现的表单元素的 html 模板。对于这样的任务,您可以将 $.ajax 替换为 $.load。如果表单有效,您可以让您的视图代码返回 json,然后您可以通过将返回的 json 数据替换为提交的表单来将返回的 json 数据呈现到您的页面上。
猜你喜欢
  • 2016-03-28
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
相关资源
最近更新 更多