1
我有一個函數,運行每個視圖來糾正slu。。 例如,如果slug/12-post-about-stuff並且用戶輸入/ 12-post-abot_stof,他們將被正確重定向。問題是,在不同的視圖例如具有不同的URL模式:Django:重定向URL,如果slu is是錯誤的
/posts/post_slug/
...
/posts/post_slug/comments/new
怎麼我寫的通過固定基於當前的URL蛞蝓名重定向的功能?
編輯:我正在使用board_name和PK參數應用裝飾器到每個視圖。我不知道的是如何動態返回新的url,因爲每個視圖的url格式不同。
def correct_board_url_name(func):
def wrapper(request, board_slug):
try:
pk = int(board_slug.split('-')[0])
board = Board.objects.get(pk=pk)
if (board.slug != board_slug):
# This does not always work depending on what is entered
return redirect(request.get_full_path().replace(board_slug, board.slug, 1))
else:
return func(request, board_slug)
except:
raise Http404('')
return wrapper
你能否解釋多一點? –
您如何計劃將不良網址與正確的網址進行匹配?它是基於PK 12嗎?您是使用基於類還是基於功能的視圖? –
基於類的視圖,爲清晰起見編輯 – mei