我是菜鸟,所以如果这是一个愚蠢的要求,请原谅。我正在尝试为网站的每个类别创建自定义RSS源,但不知何故,我无法设置传递参数(类别slug)以正确构建请求的源。 RSS应位于以下地址:http://www.website.com/category-name/feed
这就是我所拥有的:
在urls.py中:
from project.feeds import FeedForCategory
urlpatterns = patterns('category.views',
#...
url(r'^(?P<category_slug>[a-zA-Z0-9\-]+)/feed/?$', FeedForCategory),
)
在feeds.py中:
from django.contrib.syndication.feeds import Feed
class FeedForCategory(Feed):
def get_object(self, request, category_slug):
return get_object_or_404(Category, slug_name=category_slug)
def title(self, obj):
return "website.com - latest stuff"
def link(self, obj):
return "/articles/"
def description(self, obj):
return "The latest stuff from Website.com"
def get_absolute_url(self, obj):
return settings.SITE_ADDRESS + "/articles/%s/" % obj.slug_name
def items(self, obj):
return Article.objects.filter(category=category_slug)[:10]
我得到的错误是:“_ init _()得到了一个意外的关键字参数'category_slug'”,但回溯没有帮助,它只显示了一些基本的python内容。 谢谢。
答案 0 :(得分:1)
来自文档:https://docs.djangoproject.com/en/dev/ref/contrib/syndication/
您需要将Feed对象的实例传递给您的网址模式。所以在urls.py中执行此操作:
from project.feeds import FeedForCategory
urlpatterns = patterns('category.views',
#...
url(r'^(?P<category_slug>[a-zA-Z0-9\-]+)/feed/?$', FeedForCategory()),
)