Изучение чего-то нового всегда стоит усилия, по моему скромному мнению. Я предлагаю, чтобы Вы распечатали шпаргалку и вынудили себя использовать ее изо дня в день.
I обычно делают два шаблона с с именем url :
url(r'^so/(?P<required>\d+)/$', 'myapp.so', name='something'),
url(r'^so/(?P<required>\d+)/(?P<optional>.*)/$', 'myapp.so', name='something_else'),
Почему бы не иметь два шаблона:
(r'^so/(?P<required>\d+)/(?P<optional>.*)/$', view='myapp.so', name='optional'),
(r'^so/(?P<required>\d+)/$', view='myapp.so', kwargs={'optional':None}, name='required'),
Другие продемонстрировали способ решения этой проблемы с помощью двух отдельных именованных шаблонов URL. Если вас беспокоит повторение части шаблона URL-адреса, можно избавиться от него, используя include ():
url(r'^so/(?P<required>\d+)/', include('myapp.required_urls'))
А затем добавить файл required_urls.py с:
url(r'^$', 'myapp.so', name='something')
url(r'^(?P<optional>.+)/$', 'myapp.so', name='something_else')
Обычно я бы не стал считать, что это того стоит если только не существует общего префикса для большого количества URL-адресов (конечно, более двух).