2012-05-04 59 views
0

我有一些不再有效的URL重定向,所以我需要它們返回一個410.因爲這些URL來自舊版本的網站(具有完全不同的系統),我只是簡單地將它們放在重定向應用程序中以使得更容易編輯。然而,410「重定向」不會返回狀態碼以外的任何內容 - 通常顯示的頁面只是空的。如何獲取Django中410 http狀態碼的錯誤頁面?

如何顯示對用戶有意義的內容(如「頁面不再存在」)?如果有類似於404錯誤模板的模板,那將會很不錯。

任何想法?

+0

http://stackoverflow.com/questions/4208572/how-to-raise-a-410-error-in-django – dm03514

+0

謝謝,但由於我使用重定向應用程序,這不會幫助我。我重新修改了我的問題。 – Semmel

回答

0

只是改變的響應狀態代碼作爲render快捷410

from django.shortcuts import render 

def my_view(request): 
    context = {} 
    return render(request, '410.html', context, status=410) 

文檔:https://docs.djangoproject.com/en/1.3/topics/http/shortcuts/#render

您還可以創建一個例外Http410和中間件捕獲這個異常渲染410頁。這就是在Django中經常處理404頁面的方式。

+0

我只是使用常規的重定向,所以渲染我自己不是一個選項。 第二個選項聽起來更好。我也想過某種中間件 - 只要能夠捕獲正常的410錯誤就足夠了嗎?或者我必須寫我自己的例外(這 - 再次 - 不是一個選項)。 – Semmel

+0

請參閱@ dm03514對中間件/異常示例的評論。我不確定我是否明白「定期」重定向的含義。某處你必須確定該鏈接無效,該地點應該返回410. –

+0

對不起 - 我應該更簡潔。我使用Django的重定向應用程序,當我不做重定向時,我得到了410,但沒有任何進一步的通知。我的意思是 - 我不應該得到某種信息(就像404頁面)而不是空白頁面? – Semmel

相關問題