簡體   English   中英

在Django中創建RSS Feed的問題

[英]Issue with creating RSS Feed in Django

我必須創建一個Web應用程序,該應用程序顯示與服務器有關的事件以進行即將到來的采訪。 我必須包括與服務器相關的所有事件的RSS Feed。 我決定在Django中實現此功能。

我遵循了有關創建Feed的Django教程,並查看了教程要點教程,但是出現以下錯誤。

/ server_status / latest / feed /中的DidsNotExist不存在事件匹配查詢。

這是我的Feeds.py:

from django.contrib.syndication.views import Feed
from server_status.models import Event
from django.core.urlresolvers import reverse

class LatestEvents(Feed):
    title="List of All Active and Scheduled Events"
    link="/event/"
    description="This RSS feed contains a list of all active and scheduled events."

    def items(self):
        return Event.objects.order_by('-date_active')

    def item_title(self, item):
        return Event.objects.get(event_title='event-title')

    def item_description(self, item):
        return Event.objects.get(event_description='event_descrption')

    def item_link(self, item):
        return reverse('event', args=[Event.pk])

這是使用局部變量引發的錯誤:

H:\interview\server_status\feeds.py in item_title
        return Event.objects.get(event_title='event-title') ...
▼ Local vars
Variable    Value
item    <Event: Server down for routine maintenance>
self    <server_status.feeds.LatestEvents object at 0x03563230>

我自己添加事件對象時,它確實存在於數據庫中。 我通過管理站點添加了它,如果有什么不同。

如果我的模型有問題,請訪問以下模型:

class Event(models.Model):
    event_status=models.ForeignKey(Status)
    event_title=models.CharField(max_length=50)
    event_description=models.CharField(max_length=500)
    date_active=models.DateField(default=timezone.now())
    time_active=models.TimeField(default=timezone.now())

    def __str__(self):
        return self.event_title

我認為您誤解了這些方法的用途。 它們采用Event的實例,並應返回表示該對象的標題和描述的字符串。 您可能需要遵循以下原則:

class LatestEvents(Feed):

    def item_title(self, item):
        return item.event_title

    def item_description(self, item):
        return item.event_description

    def item_link(self, item):
        return reverse('event', args=[item.pk])

您不應該在這些方法的任何地方(在items() )使用Event類本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM