2017-05-30 28 views
0

是否有可能採取從將抓住從一個給定的vaule即query = Table.objects.filter(x=y)所有值的數據庫查詢發送到HTML像這樣:Django的動態編輯和基於查詢的表保存對象

<table> 
    <tr> 
     <th>Value 1</th> 
     <th>Value 2</th> 
     <th>Value 3</th> 
    </tr> 
    {% for value in query %} 
    <tr> 
     <td>{{ value.val1 }}</td> 
     <td>{{ value.val2 }}</td> 
     <td>{{ value.val2 }}</td> 
    </tr> 
    {% endfor %} 
</table> 

比方說,查詢返回3個對象。這意味着該表格將有3行數據,但在HTML中,所有<td>標籤都是相同的。我怎樣才能確定每行<td>,以便我可以操縱數據並將其保存回數據庫?

我試過用jquery,但我只能操縱第一行。

+0

使用JS(native或jQuery或...),您可以創建新的DOM元素。給你的表一個ID並嘗試循環創建'tr's和'td's。之後,將它們追加到你的表格中。見:https://www.w3schools.com/jquery/jquery_dom_add.asp – Chris

回答

1

在views.py文件中使用上下文?

​​

模板:

{% for x in articles %} 
{{x}} 
{%endfor%} 

對於不斷變化的數據部分使用了Ajax/API(看看的documentation)。您需要設置一個由Ajax調用(點擊或其他)觸發的API視圖。這正在改變數據庫,但需要處理很多事情。如果你這樣做,你的網站甚至不會重新加載,所有的數據都會被保存。

爲了觸發正確的值,你必須給他們類或ID(記住ID是唯一的)。您也可以設置一個For Loop Counter並使用它。

希望有幫助。

+0

感謝您的答案!這讓我走上了正軌。現在,如果我使用'{{forloop.counter}}'有沒有辦法在jquery或ajax中,我可以根據帶有計數器的'​​'標籤抓取整行數據? – GreenSaber

+1

一個小記錄。如果它是一個公共項目,您希望確保用戶更改這些對象有權這樣做,否則我可以使用檢查器更改元素的ID並打破任意數據庫條目。 –

+0

@Evan我從來沒有在這方面使用​​所以我不能幫你在這裏,但這兩個看起來很有前途;)[鏈接] https://stackoverflow.com/questions/376081/how-to-get-a-table- cell-value-using-jquery [link] https://stackoverflow.com/questions/9437914/how-to-select-this-specific-td-element-and-its-with-jquery @ Jonas你是完全正確的。謝謝你提到它 – hansTheFranz