我根据http://docs.djangoproject.com/en/dev/ref/contrib/syndication/设置了一个 Atom 提要,这意味着我有类似的东西
(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds})
在我的urls.py
和类似的
class MyFeed(Feed):
...
在我的feeds.py
.
我想将此提要的流量重定向到 FeedBurner。我必须在 Django 中执行此操作,因为我的服务器上没有 mod_rewrite。
我想我应该将urls.py
条目更改为
(r'^feeds/(?P<url>.*)/$', 'feeds.redirect', {'feed_dict': feeds})
feeds.py
并补充
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
def redirect(request, **kwargs):
if request.META['HTTP_USER_AGENT'] == 'FeedBurner':
view = 'django.contrib.syndication.views.feed'
return HttpResponseRedirect(reverse(view, kwargs=kwargs))
else:
return HttpResponseRedirect('http://feeds2.feedburner.com/MyFeed')
但它似乎不起作用,因为我收到以下错误(您必须更改==
才能!=
看到此错误):
/feeds/myfeed/ 处的 NoReverseMatch
使用参数 '()' 和关键字参数 '{'url': u'myfeed
<function feed at 0x16a2430>
', 'feed_dict': {'myfeed':<class 'feeds.MyFeed'>
}}' 反向查找。
如何解决?