Django:反向查找Feed的URL?

时间:2010-04-09 02:48:30

标签: python django django-templates django-urls

我无法为Django生成的Feed执行反向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/

目前,我正在使用hack生成模板的URL:

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

但是,正如你所看到的,显然不是DRY。有什么我想念的吗?

2 个答案:

答案 0 :(得分:3)

不幸的是,使用当前的feed框架实际上不可能进行URL反转。好消息是feed框架已经完全重构,可以与Django的URL解析机制无缝集成。这个重构的feed框架将随Django 1.2一起提供,它应该到达end of April。您可以在docsgreat article中通过Rob Hudson在DjangoAdvent上阅读。

答案 1 :(得分:1)

你正在使用关键字参数,所以你应该这样传递它们:) 试试这个:

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