2010-07-02 3 views
3

Как вы относитесь к иерархическим URL-адресам в Django? Любые лучшие практики для этого? Например. Если бы у меня был URL-адрес, например, /blog/category1/category2/myblogentry (с использованием, например, django-mptt), выполняете ли вы проверку в urls.py или передаете весь путь к просмотру, пусть он проверяет каждую часть, если она является допустимой категорией и т. Д.? Не звучит так жестко, но просто любопытно, может ли кто-нибудь порекомендовать некоторые лучшие практики или показать хорошие (общие) решения?Django: Иерархические адреса

ответ

2

Боюсь, что на ваш вопрос нет единого ответа. Проблема в том, что там указано, как выглядит иерархия на уровне URL-пакетов, с ней слишком много логики.

Я нашел полезным для пользователей декораторов. Например, в вашем случае вы можете написать декоратор, который проверяет здравомыслие категорий и передает только окончательную категорию вниз. Что-то, как декоратор, который может взять функцию с этой подписью:

f(request, cat1, catN..., slug) 

Проверка, что каждая категория действительно родитель следующего, и проходя вниз мнению, окончательную проверила категорию.

@validate_category_hierarchy 
def post_in_category(request, category, slug): 

Если вам действительно нужно, чтобы быть расширяемой, декоратор может сделать немного самоанализа и сделать некоторые предположения (например, насколько глубоко может дерево идти, каковы остальные параметры, такие как, и т.д.).

Затем все, что вам нужно сделать, это написать URL-адрес confs тщательно, чтобы декоратор получил параметры в хорошей форме.

 Смежные вопросы

  • Нет связанных вопросов^_^