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 にリダイレクトしたいと考えています。サーバーに mod_rewrite がないため、Django でこれを行う必要があります。
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
<function feed at 0x16a2430>
引数 '()' およびキーワード引数 '{'url': u'myfeed', 'feed_dict': {'myfeed': }<class 'feeds.MyFeed'>
}' を持つ ' ' の逆が見つかりません。
これはどのように解決できますか?