找不到“无”的反向。 “无”不是有效的视图函数或模式名称

问题描述 投票:0回答:0

我想要多语言网页。 当我手动输入语言缩写时,它工作正常。例如,www.my_page.com/en,但在使用链接添加 HMTL 时会抛出错误。无法弄清楚是什么问题。这是代码。

在我的应用程序中查看功能

def store(request):
    return render(request, "store/store.html")

def set_language(request, language):
    for lang, _ in settings.LANGUAGES:
        translation.activate(lang)
        try:
            view = resolve(urlparse(request.META.get("HTTP_REFERER")).path)
        except Resolver404:
            view = None
        if view:
            break
    if view:
        translation.activate(language)
        next_url = reverse(view.url_name, args=view.args, kwargs=view.kwargs)
        response = HttpResponseRedirect(next_url)
        response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language)
    else:
        response = HttpResponseRedirect("/")
    return response

应用程序网址.py

urlpatterns = [
    path("", views.store, name="store"),
    path("set_language/<str:language>/", views.set_language, name="set-language"),
]

项目地址.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", include("store.urls")),
]

urlpatterns = [
    *i18n_patterns(*urlpatterns, prefix_default_language=False),
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我的模板 html 文件

    <!-- Topbar Start -->
    <div class="container-fluid bg-dark text-light px-0 py-2">
        <div class="row gx-0 d-none d-lg-flex">
            <div class="col-lg-5 px-5 text-end">
                    <i class="fa fa-globe"></i>
                    <span>Language:</span>
                    <a href="{% url 'set-language' 'tm' %}">TKM</a>
                    <a href="{% url 'set-language' 'ru' %}">RU</a>
                    <a href="{% url 'set-language' 'en' %}">ENG</a>
                    <a href="{% url 'set-language' 'tr' %}">TR</a>
            </div>
        </div>
    </div>
    <!-- Topbar End -->

我在根级别尝试了多语言功能。它工作正常但应用程序是这样的

NoReverseMatch at /set_language/en/ Reverse for 'None' not found. 'None' is not a valid view function or pattern name.

python django django-urls multilingual
© www.soinside.com 2019 - 2024. All rights reserved.