Синдикация django: как отправить в шаблон набор запросов, содержащий все каналы - PullRequest
2 голосов
/ 12 июля 2009

Я хотел бы отобразить все доступные каналы на одной странице, но я не хочу жестко кодировать каждый канал. Что-то вроде отправки в наборе запросов каналов будет идеально, например:

{% для кормов в кормах%} {{feed.link}} {{feed.name}} {{feed.description}} {% endfor%}

Из того, что я понимаю, каналы в Django Syndication Framework создаются как отдельные классы, которые наследуются от класса (канала). Это означает, что я не могу создать набор запросов для всех каналов, только для отдельных каналов.

Как я могу отправить набор запросов из фидов, если они представляют собой разные классы? Возможно ли это только путем создания набора запросов из класса, который ссылается на каждый фид, используя общие связи с внешними ключами? Или я действительно могу отправить набор запросов родительского класса [feed]?

Бонусный вопрос: есть ли простой способ агрегировать "полный канал" из всех отдельных каналов?

Большое спасибо!

1 Ответ

1 голос
/ 12 июля 2009

Если вы можете заранее перечислить каналы, вы можете создать список каналов и поместить его в шаблон ...

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

Я попробовал подход, описанный ниже, и он не сработал , который фактически можно заставить работать, поскольку «related_name» только создает функцию доступа и не влияет на таблицы БД.

#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')

Джанго жалуется, что функции доступа FeedCollection.feed_set для двух таблиц фидеров конфликтуют.

...