Django: обратный поиск URL фидов? - PullRequest
2 голосов
/ 09 апреля 2010

У меня проблемы с выполнением обратного просмотра URL для сгенерированных Django фидов.

У меня есть следующие настройки в urls.py:

feeds = {
    'latest': LatestEntries,
}

urlpatterns = patterns('',
    # ...
    # enable feeds (RSS)
    url(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
        {'feed_dict': feeds}, name='feeds_view'),
)

Я пытался использовать следующий шаблон тега:

<a href="{% url feeds_view latest %}">RSS feeds</a>

Но полученная ссылка - не то, что нужно (http://my.domain.com/feeds//). Это должно быть http://my.domain.com/feeds/latest/.

На данный момент я использую хак для генерации URL для шаблона:

<a href="http://{{ request.META.HTTP_HOST }}/feeds/latest">RSS feeds</a>

Но, как вы можете видеть, это явно не СУХОЙ. Что-то мне не хватает?

Ответы [ 2 ]

3 голосов
/ 09 апреля 2010

К сожалению, реверсирование URL на самом деле невозможно при текущей структуре фида. Хорошая новость заключается в том, что структура фида была полностью реорганизована и может легко интегрироваться с механизмами разрешения URL-адресов Django. Эта переделанная структура подачи будет поставляться с Django 1.2, который должен прибыть в конце апреля 1001 *. Вы можете прочитать об этом в документах или в замечательной статье Роба Хадсона о DjangoAdvent .

1 голос
/ 09 апреля 2010

Вы используете ключевые слова аргументы, поэтому вы должны передать их как таковые :) Попробуйте это:

<a href="{% url feeds_view url="latest" %}">RSS feeds</a>
...