2012-08-07 46 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