2010-04-09 1 views
2

У меня возникли проблемы с обратным поиском URL-адресов для Django-генерируемых фидов.Django: обратный URL-адрес поисковых запросов?

У меня есть следующие настройки в 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> 

Но, как вы можете видеть, это явно не DRY. Есть что-то, чего я не хватает?

ответ

1

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

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

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

+0

Отличная статья. Благодарю. Однако приведенное ниже предложение работает. – Santa