2009-07-11 7 views
2

利用可能なすべてのフィードを1ページに表示したいのですが、各フィードをハードコードしたくありません。フィードのクエリセットに送信するようなものは次のように、完璧になる:{%を供給するに飼料用%}django syndication:すべてのフィードを含むクエリーセットをテンプレートに送る方法

{{feed.link}} {{feed.name}} {{}} feed.description{%endfor%}

私が理解するところでは、Django Syndication Frameworkのフィードは、クラス(フィード)を継承する個々のクラスとして作成されます。これは、すべてのフィードに対してクエリセットを作成することはできず、個々のフィードに対してのみ作成できることを意味します。

それぞれのクラスが異なる場合は、どのようにクエリのフィードセットを送信できますか?これは、一般的な外部キー関係を使用して各フィードを参照するクラスのクエリーセットを作成することによってのみ可能ですか?または、実際に親の[フィード]クラスのクエリセットを送信できますか?

ボーナスに関する質問:すべてのフィードから「フルフィード」を集める簡単な方法はありますか?

多くの感謝!

+0

最初にクエリセットを作成するにはどうすればよいですか?コードを表示できますか? – Evgeny

+0

私はリストアプローチが行く方法だと思いますが、これはクラス[feed]を継承するすべてのクラスのリストを自動的に作成する質問には答えません。 今のところ、私はurls.pyで手動で定義したフィードリストを使用します。 –

答えて

1

あなたがフィードのリストを作成して、テンプレートにそれを置くことができ、事前にフィードを列挙することができれば...

feeds = [feed_a,feed_b,...] 
feeds.append(feed_c) 
... 

私はは、以下のアプローチを試みたし、それがを動作しませんでした、 「related_name」はアクセサ関数を作成するだけで、DBテーブルには影響しないため、実際に動作させることができます。

#this code does not work in Django v1 
class FeedCollection(models.Model): 
    subject = models.CharField(max_length=256) 

class BloggerFeed(models.Model): 
    collection = models.ForeignKey(FeedCollection,related_name='feed') 

class CNNFeed(models.Model): 
    collection = models.ForeignKey(FeedCollection,related_name='feed') 

Djangoは二つの供給テーブルのアクセッサ関数FeedCollection.feed_setが衝突することを訴えます。

関連する問題