Django: лучшая практика для URL conf, тег шаблона URL - PullRequest
5 голосов
/ 05 октября 2011

С учетом того, что представления на основе классов стали намного лучше в Django, я сталкиваюсь с проблемой «передового опыта» при реализации представления на основе классов.По сути, это сводится к тегу шаблона URL .

. Имеется следующий URL-адрес:

urlpatterns = patterns('some_app.views', 
    url(r'^$', 'index', name='some_app_index')
)

. Этот тег может указывать путь к представлению:

{% url some_app.views.index %}

или имя URL-адреса:

{% url some_app_index %}

Теперь, с помощью URL-адреса на основе класса, каждый заканчивается URL-адресом, подобным следующему:

from some_app.views import Index

urlpatterns = patterns('', 
    url(r'^$', Index.as_view(), name='some_app_index')
)

Это означает, что использование {% url some_app.views.index %} больше не работает, но {% url some_app_index %} по-прежнему работает.(И {% url some_app.views.Index.as_view %}, похоже, не является решением).


Итак, мой вопрос: что является наилучшей практикой для ссылки на URL-адреса из шаблона?

К этому моменту я полагал, что использование метода path.to.view было лучше, поскольку оно было чисто пространством имен.Однако, если представления на основе классов выглядят лучше и лучше, лучше ли использовать имя URL ?В этом случае пространство имен полностью зависит от атрибута имени, устанавливаемого разработчиком приложения таким образом, чтобы отделить имя URL-адреса от других приложений ...

Мысли?Я не смог найти «сделать это таким образом» в документации по Django, но если кто-нибудь написал об этом, я бы с удовольствием его прочитал.

1 Ответ

8 голосов
/ 05 октября 2011

Я всегда использую имена.

Помимо проблемы, которую вы упоминаете с путями, у вас также будет проблема, если у вас есть два URL-адреса, указывающих на одно и то же представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...