Диспетчер URL-адресов Django основан на регулярных выражениях, поэтому вы можете предоставить ему регулярное выражение, которое будет соответствовать желаемому пути (с повторяющимися группами).
Однако я не смог найти способ сделать так, чтобы диспетчер URL django совпадал с несколькими подгруппами (он возвращает только последнее совпадение в качестве параметра), поэтому некоторая часть обработки параметров оставлена для просмотра.
Вот пример шаблона URL:
urlpatterns = patterns('',
#...
(r'^(?P<foldersPath>(?:\w+/)+)(?P<action>\w+)', 'views.folder'),
)
В первом параметре у нас есть группа без захвата для повторения символов «слова», за которыми следует «/». Возможно, вы захотите изменить \ w на что-то другое, чтобы включить другие символы, кроме алфавита и цифр.
Вы, конечно, можете изменить его на несколько представлений в конфигурации URL вместо использования параметра действия (что более целесообразно, если у вас ограниченный набор действий):
urlpatterns = patterns('',
#...
(r'^(?P<foldersPath>(?:\w+/)+)view', 'views.folder_View'),
(r'^(?P<foldersPath>(?:\w+/)+)delete', 'views.folder_delete'),
)
и в представлениях мы разбиваем первый параметр, чтобы получить массив папок:
def folder(request, foldersPath, action):
folders = foldersPath.split("/")[:-1]
print "folders:", folders, "action:", action
#...