2013-10-26 43 views
0

我製作了Django應用程序來顯示聚集新聞文章的列表。我想在第一頁顯示三篇文章,如果用戶想要全部顯示,可以點擊「查看真實報道」鏈接並查看文章的總體列表(如GoogleNews功能)。在主頁面中,我有一個變量名爲lista。我想僅發佈主頁面中的前三個元素,並且我希望將新文章的列表轉移到新頁面中,我們稱之爲主題。我在views.py文件中添加主題功能:如何動態打開Django中的新頁面

def theme(request,argument): 
    lista=argument 
    return render(request,'theme.html', locals()) 

而且main.html中代碼,我調用主題功能如下:

<a href="{% url "mysite.views.theme" argument=lista %} target="_blank"> 

或我嘗試:

<a href="{% url "mysite.views.theme" lista %} target="_blank"> 

urls.py代碼:

urlpatterns = patterns('', 
    ('^main/$', main), 
    ('^all/$', tegjitha), 
    ('^(sport)/$', gen), 
    ('^(teknologji)/$', gen), 
    ('^(showbiz)/$', gen), 
    ('^(bota)/$', gen), 
    ('^(ekonomi)/$', gen), 
    ('^(kulture)/$', gen), 
    ('^(theme)/$', theme), 

它給我:NoReverseMatch在/主/錯誤。

+0

你是什麼意思「我有一個名爲lista的變量中的文章列表」?文章ID列表?文章對象列表?除此之外,你怎麼認爲模板代碼應該表現?我的意思是,結果URL甚至會是什麼樣子? –

+0

Lista是一個列表列表,其中每個元素都存儲關於單個文章的信息:標題,來源,鏈接...結果應該與Google新聞完全一樣:https://news.google.com/。在此頁面中,點擊「查看實時報道」鏈接後,會打開一個新頁面,其中顯示關於同一主題的所有文章talknig的列表。所以,我在「main」模板中有這個列表,它的功能正常,並且我希望這篇文章列表以某種方式在新頁面中「傳輸」(稱爲「主題」),目的不是從一開始就重新創建列表。我試圖調用一個函數主題,參數「lista」 – user1680859

+0

這個想法很好,我相信簡單的方法是使用feedparser的rss方法 – drabo2005

回答

2

你需要認識到你正在嘗試採取的方法是行不通的。 url模板標籤所做的就是生成一個簡單的字符串 - 特定資源的URL。所以標籤的結果可能是像「/ post」,「/ post/24」等字符串。就是這樣。除了生成URL字符串之外,該函數不會執行任何操作,並且在簡單的Web URL中不存在複雜python對象列表。

您還需要認識到,最基本的網絡是無狀態的。你不能在請求之間傳遞python對象,因爲每個請求都是完全獨立的。您可以使用sessions模擬請求之間的狀態保持狀態,但我不認爲這是在這種特殊情況下的正確工具。

你應該做的是爲每個列表設置唯一的標識符,並在URL中傳遞標識符(與在URL中傳遞整個列表相反)。然後,您可以在視圖中使用標識符,再次檢索列表並顯示結果。

+0

我是一個初學Django和一般的web開發人員。我希望有一種方法可以在不同的頁面之間傳輸數據。某處提到關鍵字「命名空間」,我認爲也許有人可以指示我在這個方向 – user1680859

+0

這不是HTTP的工作方式。每個頁面請求都是分開的。您應該將數據保存在數據庫中,並在請求特定資源時檢索它。 –

+0

有沒有什麼辦法可以將這個列表兌現到RAM中? – user1680859

0

您需要將urls.py作爲絕對字符串,就像模板中的url標記一樣。所以主要是這樣的:

('^main/$', 'mysite.views.main'), 

您也可以定義在上面的路徑,你的模式:

urlpatterns = patterns('mysite.views', 
    ('^main/$', 'main'), 
    … etc 

但請注意,你仍然需要引用它作爲一個字符串

+0

但「主」頁面功能正常,我有「主題」頁面的問題 – user1680859

+0

在/ main /上沒有反向匹配,告訴我你的urls.py中的主要URL有問題(你也這樣做) – yuvi

+0

它跟隨在「Reverse for'mysite.views .theme'與論據...我認爲我與「主題」的問題url – user1680859