2016-07-27 15 views
0

今後のインタビューのためにサーバーに関連するイベントを表示するWebアプリケーションを作成する必要があります。私は、サーバーに関連するすべてのイベントのRSSフィードを含める必要があります。私はこれをDjangoで実装することを決めました。DjangoでRSSフィードを作成する際の問題

私はFeedを作成するためのDjangoチュートリアルに従い、チュートリアルポイントのチュートリアルを見ましたが、次のエラーが出てきます。

Does notNotExist at/server_status/latest/feed/ イベントマッチングクエリが存在しません。私はそれを自分自身を追加しましたよう

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> 

イベントオブジェクトがデータベースに存在しない:ここで

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]) 

は、ローカル変数にスローされるエラーです。

は、ここに私のFeeds.pyです。それが何か違いがあれば、管理サイトから追加しました。

とケースで私のモデルで何かがあります、これはアクセスされているモデルです。

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 
+0

'item_title'と' item_description'メソッドのロジックが意味をなさない。これらのメソッドは、関数に渡される 'item'オブジェクトのtitle/descriptionを返すことになっています。なぜあなたはそこに新しいオブジェクトを取得しようとしていますか?これらの関数は 'Entry'オブジェクトではなく文字列を返すべきです。 – solarissmoke

+0

@solarissmokeだから、オブジェクトを取得する代わりに、タイトルと説明の文字列表現を返さなければならないことを示唆していますか? – cmackie21

+0

あなたはすでにその機能にオブジェクトを持っています。下の私の答えを見てください。 – solarissmoke

答えて

2

私はあなたがこれらのメソッドはのためにあるものを誤解したと思います。それらは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クラス自体を使用するべきではありません。

+0

ありがとう、これは私が探していたものでした!今すぐご利用ください! – cmackie21

関連する問題