【问题标题】:Django page redirect based on locale url基于区域设置 url 的 Django 页面重定向
【发布时间】:2013-10-10 23:46:13
【问题描述】:

假设我们有一个页面:

http://www.example.com/cs/department/category/

我正在使用 django-locale 进行国际化。

如果有人输入,我将如何实现:

http://www.example.com/en/department/category/

EN 会重定向而不是 CS。

我通过像这样注释掉其他语言来实现这一点:

但我想做的是让它们不加注释。 urls.py 或 views.py 中只有“CS”有效的正确重定向是什么。 DE & EN 将被重定向。如果你不明白,我可以澄清更多。

谢谢

【问题讨论】:

    标签: redirect django-views django-urls url-pattern django-localeurl


    【解决方案1】:

    快速和懒惰的解决方案可以是:

    views.py

    from django.http import HttpResponseRedirect
    
    def myview(request):
        newurl = 'define your new url here'
        if not 'cs/' in request.get_full_path():
            return HttpResponseRedirect(newurl)
    

    【讨论】:

    • 但是如果我有 20 个视图,我必须将它添加到每个视图中?
    • 在这种情况下是的,但您也可以在 urls.py 中创建重定向 from django.views.generic import RedirectView ` 然后在您的 urlpatterns 添加 `url(r'^bad_url/$', RedirectView. as_view(url= 'good_url')), `希望对你有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多