【问题标题】:django rss returns 404django rss 返回 404
【发布时间】: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


    【解决方案1】:

    尝试在all后面加上括号。

    class RssSiteNewsFeed(Feed):
        ...
        def items(self):
            return Post.objects.all().order_by('date')[:5]
    

    【讨论】:

    • 谁能帮帮我
    猜你喜欢
    • 2015-11-04
    • 1970-01-01
    • 2021-08-18
    • 2017-07-01
    • 2011-05-04
    • 2015-10-26
    • 2014-01-04
    • 2018-12-27
    • 1970-01-01
    相关资源
    最近更新 更多