gpt4 book ai didi

python - Django 在函数内重定向

转载 作者:行者123 更新时间:2023-11-30 22:32:41 33 4
gpt4 key购买 nike

我正在尝试建立论坛。处理 url 时,有一个板 ID 和一个板名称。板名称的存在只是为了用户可读性,这意味着如果有人正确输入 ID,但板名称错误或已更改,则会将其重定向到正确的 url。我创建了一个函数来管理这个问题,因为我需要多次检查董事会是否正确,而不仅仅是这个网址。

# urls.py
...
url(r'^boards/(?P<board_id>\d+)/(?P<board_name>[^/]+)/$', views.board, name='board'),
...

# views.py
def board(request, board_id, board_name):
RedirectIfWrong(request, board_id, board_name)
...
return render(request, 'forums/board.html', {'board': board})

def RedirectIfWrong(request, pk, name):
board = Board.objects.all().get(pk=pk)
if (board.name != name):
return redirect(request.get_full_path().replace(name, board.name, 1))

但是,当我在函数内调用重定向时,它不起作用。我也听说过使用中间件来做到这一点。这是如何工作的以及如何使其仅适用于涉及董事会的网址?

最佳答案

def board(request, board_id, board_name):
bad = RedirectIfWrong(request, board_id, board_name)
if bad:
return bad
...
return render(request, 'forums/board.html', {'board': board})

关于python - Django 在函数内重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45394483/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com