Я пытаюсь создать универсальный url для вызова представления с передачей аргумента и без.
Например: site.ru/contacts я могу открыть напрямую без ссылки и хочу открыть его по ссылке в шаблоне, находясь не на главной странице.
Сейчас у меня ссылка получается такой: site.ru/design/contacts и я вынужден создать два урла для вызова представления.
Смысл в том, что если перейти по ссылке site.ru/contacts без передачи аргумента, то открывается полная страница контактов, а если с аргументом, то на странице должен отображаться sidebar
#urls.py
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'(?P<section>/)contacts/$', views.contacts, name='contacts-url'),
path('contacts/', views.contacts, name='contacts-url'),
re_path(r'about/$', views.about_us, name='about-us-url'),
re_path(r'^thanks/$', views.message_thanks, name='thanks-url'),
path('', include('design.urls')),
]
#views.py
def contacts(request, section=''):
context = {
'selected_section': section,
'classes': ['contacts'],
}
print('!!!'+section)
if section != '':
context['classes'].append('is-nav')
return render(request, 'contacts.html', context)
#sidebar.html
...
<li><a href="{% url 'contacts-url' section='design' %}">Контакты</a></li>
...
Может есть более логичный путь, используя один url?
Thanx