Реализация потока новостей в Django - PullRequest
1 голос
/ 21 июля 2011

У меня есть приложение Django, которое использует модель Product и модель Comment.

  • A User может добавить Product в список своих любимых продуктов.

  • A User может оставить Comment до Product.

Я бы реализовал новостную ленту домамоего приложения, что-то вроде новостной ленты Facebook.

Примерно так:

  • user_1 просто комментирует product_3: «это прекрасно!»
  • user_1 только что добавил product_3в свой список
  • user_4 только что добавил product_2 в свой список
  • user_4 только что добавил product_3 в свой список
  • user_2 просто комментирует product_1: "рекомендуется!"
  • user_4 только что добавил product_1
  • и т. д.

Так что это фид с предложениями различного типа.

Есть ли у вас идеи, чтобы реализовать что-то подобное хорошим способом?

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Я бы предложил создать новую модель (скажем, UserActions), в которой вы будете отслеживать все желаемые действия, добавляя элемент в действие «сохранить» каждой из ваших других моделей.Затем вы можете легко построить представление для этой модели и сгенерировать канал со всеми действиями в хронологическом порядке.

0 голосов
/ 21 июля 2011
  1. Django ORM поддерживает полиморфные ассоциации.Вы можете иметь «базовый» объект, такой как «Событие», и конкретные события, такие как «UserEvent», «ProductEvent» и так далее.Это довольно просто.Смотрите здесь: https://docs.djangoproject.com/en/dev/topics/db/models/ ищите «наследование модели»
  2. Посмотрите на типы контента: http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/
  3. Возможно, вы можете просто сохранить «обработанный» текст в БД.
...