Боюсь, что нет единого ответа на ваш вопрос. Проблема заключается в том, что указание того, как иерархия выглядит на уровне URL, связывает слишком много логики.
Я нашел полезным для пользовательских декораторов. Например, в вашем случае вы можете написать декоратор, который проверяет правильность категорий и передает только последнюю категорию в представление. Что-то вроде декоратора, который может принимать функцию с такой подписью:
f(request, cat1, catN..., slug)
Проверка того, что каждая категория действительно является родительской для следующей, и передача просмотра окончательно проверенной категории.
@validate_category_hierarchy
def post_in_category(request, category, slug):
Если вам действительно нужно, чтобы он был расширяемым, декоратор может сделать небольшой самоанализ и сделать некоторые предположения (например, насколько глубоко может зайти дерево, каковы оставшиеся параметры и т. Д.).
Тогда все, что вам нужно сделать, это тщательно написать свой URL-адрес, чтобы декоратор получил параметры в хорошем состоянии.
передать