Django:反向查找feeds的URL?

2 投票
2 回答
905 浏览
提问于 2025-04-15 21:24

我在做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原则(不要重复自己)。我是不是漏掉了什么?

2 个回答

3

很遗憾,目前的内容提要框架无法实现URL反向解析。不过好消息是,这个框架已经彻底重构,可以和Django的URL解析机制无缝对接。这个重构后的内容提要框架将在Django 1.2版本中发布,预计会在四月底上线。你可以在文档中了解更多信息,或者阅读Rob Hudson在DjangoAdvent上写的一篇精彩文章

1

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

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

撰写回答