【发布时间】:2018-10-02 22:23:57
【问题描述】:
我正在尝试为我正在开发的博客制作 RSS 和 ATOM 提要。
但是当我尝试访问我的提要的 URL http://127.0.0.1:8000/blog/rss 时,它返回错误:
404 No post found matching the query
这是我的文件 feeds.py 的内容:
from django.contrib.syndication.views import Feed
from blog.models import Post
from django.utils.feedgenerator import Atom1Feed
class RssSiteNewsFeed(Feed):
title = "Police beat site news"
link = "/sitenews/"
description = "Updates on changes and additions to police beat central."
def items(self):
return Post.objects.all.order_by('date')[:5]
class AtomSiteNewsFeed(RssSiteNewsFeed):
feed_type = Atom1Feed
subtitle = RssSiteNewsFeed.description
这是我的文件 urls.py 的相关部分:
urlpatterns = [ ...
path('blog/rss/', RssSiteNewsFeed()),
path('blog/atom/', AtomSiteNewsFeed()),
]
最后是 models.py 文件中的模型:
from django.db import models
from django.urls import reverse
class Category(models.Model):
name = models.CharField (max_length = 160)
slug = models.SlugField(max_length = 160,unique=True)
date = models.DateTimeField()
class meta :
ordering = ('name',)
verbose_name = 'category'
verbose_name_plural = 'categories'
def get_absolute_url(self ):
return "/blog/Category/%s" % self.slug
def __str__(self):
return self.name
def __unicode__(self):
return self.name
class Post(models.Model):
title = models.CharField (max_length = 160, null=False)
body = models.TextField( null=False)
date = models.DateTimeField()
author = models.CharField (max_length = 160)
description = models.TextField(max_length = 160)
keywords = models.TextField()
category = models.ForeignKey(Category,on_delete=models.DO_NOTHING)
slug = models.SlugField(max_length = 160,unique=True)
img_url = models.URLField()
short_blog_snippet= models.CharField(max_length = 15)
absolute_url = models.CharField(max_length=400, blank=True, editable=False)
def __str__(self):
return self.title
def get_absolute_url(self ):
return "/blog/%s" % self.slug
def __unicode__(self):
return self.title
我关注了 Django RSS 文档,但我不知道为什么它返回 404 错误消息。
【问题讨论】:
标签: python django rss http-status-code-404