Я создаю подстраницы с помощью панели администратора. Затем я использую цикл, чтобы добавить их в главное меню. Они отображаются только на главной странице. Если я переключаюсь на одну из них, они больше не отображаются в меню (то же самое происходит с префиксами языков).
, поэтому предположим, что у нас есть home.html с меню:
home |о |madesubpage1 |madesubpage2 |EN |DE |PL
, затем я перехожу на "созданную страницу1" или любую другую страницу и в меню оставляем только:
home |о
некоторые просмотры:
def index(request, *args, **kwargs):
multilanguage = Multilanguage.objects.all()
sub_links = Subpage.objects.all()
return render(request, 'home.html', {'multilanguage':multilanguage, 'sub_links':sub_links})
def generated_page(request, slug):
unique_subpage = get_object_or_404(Subpage, slug=slug)
sub = Subpage.objects.get(slug=slug)
if sub.is_active:
context = {
'unique_subpage': unique_subpage,
}
return render(request, 'subpage.html', context)
else:
return render(request, '404.html', {'sub':sub})
URL приложения:
urlpatterns = [
path('', views.index, name='index'),
path('o-nas', views.about, name='about'),
path('oferta', views.offer, name='offer'),
path('kontakt', views.contact, name='contact'),
path('subpage', views.subpage, name='subpage'),
path('<slug:slug>', views.generated_page, name='generated_page'),
]
header.html:
<ul id="nav-mobile" class="right hide-on-med-and-down">
<li><a href="{% url 'index' %}">{% trans 'Strona główna' %}</a></li>
<li><a href="{% url 'offer' %}">{% trans 'Oferta' %}</a></li>
<li><a href="{% url 'about' %}">{% trans 'O Nas' %}</a></li>
{% for sub in sub_links %}
{% if sub.is_active %}
<li><a href="{% url 'generated_page' sub.slug %}">{% trans sub.title %}</a></li>
{% endif %}
{% endfor %}
<li><a href="{% url 'contact' %}">{% trans 'Kontakt' %}</a></li>
<li>
<ul>
<li><a href="{{page_url}}">PL</a></li>
{% for lang in multilanguage %}
{% if lang.multilanguage_marker %}
<li><a href="{{site_identity.site_url}}/{{lang.multilanguage_prefix}}">{{lang.multilanguage_prefix|upper}}</a></li>
{% endif %}
{% endfor %}
</ul>
</li>
</ul>
URL проекта:
urlpatterns = [
path(r'^i18n/', include('django.conf.urls.i18n')),
path('admin/', admin.site.urls),
path('ckeditor/', include('ckeditor_uploader.urls')),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += i18n_patterns(
path('', include('pages.urls')),
prefix_default_language=False,
)