Django-путь к созданию “ленты новостей” / “Обновление статуса” / “Лента активности”

Я хотел бы создать допускающее повторное использование приложение Django, которое обрабатывает обновления статуса Пользователей. Во многом как "лента новостей" Facebook.

Варианты использования включают, например:

  • Профессор может создать Присвоение из-за определенной даты, и каждый студент видит на ленте новостей, что присвоение было создано с кратким описанием, дата, что это должно и ссылка для наблюдения полного описания.
  • Он также может загрузить новый PDF, который он находит интересным для его студентов. На ленте новостей информация относительно этого должна быть отображена, например, описание PDF, ссылка на загрузку и ссылка для предварительного просмотра его.
  • Ссылка на видео YouTube может быть отправлена, и на ленте новостей отображен маленькая миниатюра и, щелчком, видео встраивается с помощью JavaScript, и пользователь может наблюдать его сразу же.

Одно беспокойство - то, как обработать различные виды Обновлений и отобразить корректный "отрывок HTML" для него. Другой, то, которое более важно, то, как разработать Модели этого "Django путь".

О первом я мог думать о двух способах сделать его:

  1. Используя Образцовое наследование;
  2. Используя Универсальные отношения.

Я искал прежде, чем отправить здесь, но я ничего не нашел. Я проверил Pinax, чтобы видеть, реализовали ли им его, но они не делают. Так, я здесь ищу больше предложений о том, как обработать это хорошим и non-hacky способом.

Заранее спасибо,

15
задан Thierry 7 October 2014 в 14:18
поделиться

3 ответа

Я могу подумать двумя способами:

Во-первых, может быть, вы могли бы сделать кормления для ваших моделей ASIGMENTS , pdffiles , и YouTube Link и используйте библиотеку FeedParser , чтобы встроить его в свои новостные представления, это простой способ, потому что вы можете определить в шаблонах, код для каждого вида Новая деятельность.

Вторая вещь, которую я могу придумать, это сделать активность класса :

class Activity(models.Model):
    date = models.DateTimeField(auto_now_add = True)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')

и через сигналы составляют новый экземпляр активности каждый раз, когда у вас есть новое удовлетворение или PDF загрузка или ссылка на YouTube, а для каждого класса делают метод, такой как Render_to_html , таким образом, на ваш взгляд, вы можете сделать для мероприятий и вызов метода Render_to_html

7
ответ дан 1 December 2019 в 02:01
поделиться

После более густого и одного полезного ключевого слова (« деятельность »), что Diegeus9 упомянул и что я не думал раньше, я смог Найти более актуальный материал.

Во-первых, два поста в блоге о том, как построить TableBlog с использованием Django с использованием ContentType ContentType :

После этого другой пост, который дает предложения о том, как уменьшить Защита (1 + N) задача (которая была только одной из моих проблем, но я не упомянул, чтобы избежать загромождения вопроса).

и, наконец, приложение для многоразового Django, которое имеет некоторые из функций, которые мне нужны, и могут быть полезны для Дальнейший справочник:

5
ответ дан 1 December 2019 в 02:01
поделиться

Общие отношения были бы способом пойти сюда. Просто обязательно разрешите модель самостоятельно вместо присоединения к таблице обновления.

3
ответ дан 1 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: