我正在編寫一個簡單的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當從管理站點訪問未發佈的頁面時。 這是它應該表現的方式嗎? 我真的認爲會話信息將從管理網站的會話中繼承。
我會很感激這裏的任何方向,因爲我可能不太清楚這應該如何工作。 我不需要該網站的登錄機制,所以我希望能夠搭載管理員的登錄信息,以便能夠查看管理員中未發佈的網頁。
謝謝