我想在django cms中隐藏语言选择器中的未翻译页面,以便语言选择器仅显示具有该页面翻译的语言。我怎么能这样做?
一个想法是扩展语言选择器模板,并检查语言是否有翻译页面,但我无法找到如何做到这一点。
答案 0 :(得分:1)
在django cms 3.0中:
{% if page and language in page.languages %}
for 2.4:
您可能会运行自定义过滤器或模板标签::
if page.title_set.filter(language=lang).count():
return True
else:
return False
答案 1 :(得分:0)
实际上有一个漂亮的解决方案,首先发布在这里:https://groups.google.com/forum/#!topic/django-cms/z1rdf4C-ltQ
current_page.get_languages
是解决方案。在我的Aldryn项目中使用djangocms 3。
includes/menu/langnav.html
:
{% load i18n menu_tags %}
{% if languages|length > 1 %}
{% comment %}
This is awesome: https://groups.google.com/forum/#!topic/django-cms/z1rdf4C-ltQ
{% endcomment %}
<li class="lang">
{% for language in current_page.get_languages %}
<a class="{{ language }}{% ifequal current_language language %} selected{% endifequal %}"
href="{% page_language_url language %}">{{ language }}</a>
{% endfor %}
</li>
{% endif %}