Wagtail模型翻译语言切换器在/搜索页上不起作用 [英] Wagtail modeltranslation language switcher doesn't work on /search page
问题描述
我已经在 i18n_patterns
中添加了 search
网址,但是语言切换器在该页面上不起作用.
urls.py:
I have added search
url to i18n_patterns
, but the language switcher doesn't work on that page.
urls.py:
urlpatterns += i18n_patterns(
path("search/", search_views.search, name="search"),
path("", include(wagtail_urls)),
)
语言切换器:
{% get_available_languages_wmt as languages %}
<div class="nav-item dropdown float-right">
<p class="nav-link dropdown-toggle m-auto" data-toggle="dropdown" role="button" aria-expanded="false">
{{ request.LANGUAGE_CODE|upper }}</p>
<div class="dropdown-menu w-25">
{% for language in languages %}
{% if language != request.LANGUAGE_CODE %}
<a class="dropdown-item" href="{% change_lang language page %}">{{ language|upper }}</a>
{% endif %}
{% endfor %}
</div>
</div>
此外,当我在 root
上方添加 search
网址时,搜索页面将显示404页面.如何使语言切换器在搜索页面上工作?
Furthermore, when i add search
url above root
one the search page raises 404 page.
How can i make the language switcher work on the search page?
推荐答案
语言切换器使用Wagtail page
变量.请参见 change_lang
模板标记:
The language switcher uses the Wagtail page
variable. See the change_lang
template tag:
<a ... href="{% change_lang language page %}">...</a>
搜索是Django视图,而不是Wagtail页面. page
变量未定义.
And search is a Django view, not a Wagtail page. The page
variable is not defined.
您可以通过自己设置href来使切换器在搜索视图上工作:
You can make the switcher work on the search view by setting the href yourself:
{% for language in languages %}
<a href="/{{ language.code }}/search/"
{% endfor %}
或者,您可以创建Wagtail搜索页面:
Alternatively, you can create a Wagtail search page:
class SearchPage(Page):
def get_context(self, request):
context = super().get_context(request)
... # Copy the code from the current search view.
# Update and return the context
context.update({
'search_query': search_query,
'search_results': search_results,
})
return context
https://docs.wagtail.io/en/latest/topics/pages.html#customising-template-context
您还必须:
- 重命名(search_page.html)并重做(page.variable_name)您的搜索模板.
- 从urls.py中删除搜索网址
- 通过Wagtail管理界面将SearchPage添加到页面树中.
这篇关于Wagtail模型翻译语言切换器在/搜索页上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!