gpt4 book ai didi

python - Django 1.5 url 重定向与正则表达式?

转载 作者:行者123 更新时间:2023-11-30 23:36:18 32 4
gpt4 key购买 nike

我正在尝试做这样的事情:

(r'^$', RedirectView.as_view(url='^(?P<username>\w+)/$')),

但它似乎没有将正则表达式部分解析为实际的用户名...

我已经做了研究,但我只能找到重定向到确切网址的示例或其他仅在 Django 1.1 中有效的正则表达式示例

有人知道如何在 Django 1.5+ 中执行此操作吗?

最佳答案

子类RedirectView,并重写get_redirect_view方法。

from django.core.urlresolvers import reverse

class UserRedirectView(RedirectView):

permanent = False

def get_redirect_url(self, pk):
# it would be better to use reverse here
return '/myapp/%s/' % self.request.user.username

您可以将 UserRedirectView 包含在 myapp.urls.py 模块中,如下所示:

url(r'^$', UserRedirectView.as_view(), name='myapp_index'),

最好是reverse url 而不是上面 url 中的硬编码 /myapp/ 。例如,如果您重定向到如下所示的 url 模式

url(r'^(?P<username>\w+)/$', 'myapp.view_user', name='myapp_view_user'),

然后您可以将 get_redirect_url View 更改为:

    def get_redirect_url(self, pk):
return reverse('myapp_view_user', args=(self.request.user.username,))

关于python - Django 1.5 url 重定向与正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627407/

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