2011-05-18 44 views
0

我正在編寫一個簡單的django應用程序來管理網站上的頁面。 這些頁面是通過管理網站創建的,可以使用「查看現場」功能進行預覽。 每個頁面都有一個「發佈」布爾值,用於確定顯示頁面的視圖是否應在網站上顯示它。 當然,一旦我改變視圖以尊重'已發佈',管理頁面的'查看現場'鏈接也不會顯示該頁面。 但我希望能夠在編輯過程中預覽未發佈的頁面。在非管理視圖中使用django admin的站點身份驗證

因此,我決定更改視圖以檢查是否存在與請求關聯的已認證用戶。 例如:

if request.user.is_authenticated() and request.user.is_staff: 
    manager=Pages.objects #returns all pages 
else: 
    manager=Pages.live  #only returns published pages 

然後適當的經理傳遞從URL捕獲

然而PAGE_ID到get_object_or_404一起,在視圖中,用戶永遠是匿名,即使是誰認證與用戶管理網站點擊「查看網站」鏈接。 因此,'活'管理器總是被使用,並且我有和以前一樣的結果:404當從管理站點訪問未發佈的頁面時。 這是它應該表現的方式嗎? 我真的認爲會話信息將從管理網站的會話中繼承。

我會很感激這裏的任何方向,因爲我可能不太清楚這應該如何工作。 我不需要該網站的登錄機制,所以我希望能夠搭載管理員的登錄信息,以便能夠查看管理員中未發佈的網頁。

謝謝

回答

0

問題沒有了。 現在,如果我登錄管理員,我可以查看未發佈的頁面,否則我會收到404錯誤。

不幸的是,我不確定它爲什麼開始工作。 我跑了一些軟件包更新(django和Firefox都不在其中),不得不重啓我的(archlinux)機器。 當我重新啓動django開發服務器並再次測試該功能時,一切都很順利。 我懷疑Firefox是罪魁禍首,但這只是一個猜測。

無論如何,感謝任何給這個問題一些想法的人。 我現在可以停止拉我的頭髮了。

相關問題