2010-01-22 114 views
0

This application returns schoolmates of lawyersDjango模板:如何將項目保存在{%for%}循環中?

當用戶僅搜索名字和there are more than 1 result我離開查詢的形式,並要求他們輸入姓氏。但我認爲如果用戶只需點擊其中一個名稱並直接返回搜索結果就會更好。 (此時鏈接會再次搜索表單)。

在模板中,我需要的查詢和姓氏是{% for lawyer in lawyers %}循環內的屬性:lawyer.firstlawyer.last。我無法弄清楚如何保存它們來創建查詢。你能幫我解決這個問題嗎?

注意:模板在下面,但我把view function放在pastebin.com。這是60行,我不確定是否應該在這裏發佈。

謝謝。

<html> 
<head> 
    <title>Search results</title> 
</head> 
<body> 

<p>You searched for <strong>{{ first|capfirst }} </strong>.</p> 

<p>There are {{ lawyers|length }} {{ first|capfirst }} in the database. Please select one.</p> 

{% for lawyer in lawyers %} 
    <ul><li><a href="/search/">{{ lawyer.first }} {{ lawyer.last }} {{ lawyer.firm_name }} {{ lawyer.school}} class of {{ lawyer.year_graduated }}</a></li></ul> 
{% endfor %} 

<form action="" method="get"> 
{{ form.as_p }} 
<input type="submit" value="Submit"> 
    </form> 
</body> 
</html> 

編輯

我需要創造這樣一個新的視圖功能?

def new_query(request): 
    last_name = request.GET.get('lawyers.last') 
    first_name = request.GET.get('lawyer.first') 
    .... 

回答

1

由於您使用的是GET表單,因此您可以使用普通鏈接完全模擬表單提交。

<a href="?first_name={{lawyer.first}}&last_name={{lawyer.last}"> 

這將發送到當前URL的請求(因爲我們沒有指定任何URL,只是得到的參數,這是

<form action="" method="get"> 

等同,但增加了表格2個參數,所謂的first_name和last_name,正如它們以你的正常形式被調用一樣 - 這樣相同的視圖可以處理這個請求

如果你的表單中有其他參數(比如year_of_graduation),你必須添加他們也是。

1

你可以將其添加爲GET參數

<a href="/search/?first={{lawyer.first}}&last={{lawyer.last}"> 

然後通過request.GET您可以訪問所傳遞的物品。

+0

謝謝。我是否在編輯問題時添加了新的視圖功能?你可以提供更多的細節,或讓我知道在哪裏看? – Zeynel 2010-01-22 18:32:11

+1

@Zeynel:不,你不需要創建一個新的視圖。試試吧。 – 2010-01-23 07:26:38