2012-08-07 73 views
0

我有一个莫名其妙的转储问题,但我找不出解决方案。我希望用户能够编辑他提交的表单。这就是为什么我按照老板的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?但是我怎样才能把id分配给这个django模板for-loop?任何其他方式来做我想要的东西将不胜感激!

+0

您是否定义了任何用于编辑Webrequests的URL? – 2012-08-07 14:05:58

回答

0

我假设你想通过使用jQuery的AJAX调用来加载。

你的思路是正确的。只需在链接上添加对象的ID即可。

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

我想将它添加到href属性,但我看到人们宁愿将它添加到id属性。

然后,只需将一个onClick事件绑定到标签,读取id并根据获取的id生成一个url。 当你有一个有效的网址时,你可以发送一个GET请求到django并且请求一个表单。

$("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 
    }); 
} 
+0

酷!主要功能的作品,但你的意思是“显示应该在你的网页上的数据的形式”?由于json?我打算重新呈现提交的表单(这也意味着一个不同的视图模板)与对象的实例(提交表单)。 – marlen 2012-08-07 07:55:02

+0

不,我只是返回一个包含所有呈现表单元素的html模板。您可以用$ .load代替$ .ajax来完成这样的任务。 如果表单有效,您可以让视图代码返回json,并且可以通过将返回的json数据替换为提交的表单来将返回的json数据呈现在页面上。 – 2012-08-07 08:35:46