每当创建推文时,它的活动都会添加到getStream制作应用中。
li
Feed :仅在时间轴上显示推文(我不想看看谁开始关注我,或者喜欢任何帖子) - 就像Instagram一样!
通知:谁开始关注我,谁喜欢我的帖子,谁对我的帖子发表了评论。
views.py
class Tweet(models.Model, Activity):
user = models.ForeignKey()
text = models.CharField()
class Follow(models.Model, Activity): <- This is adding new activity to the timeline
def follow_feed_lisnner(~)
signal.post_save.connect(~)
class Like(models.Model, Activity): <- Like is adding to activity so timeline automatically shows who liked this post,
feeds = feed_manager.get_news_feeds(request.user.id)
# get the newsfeed for user.
activities = feeds.get('timeline').get()['results']
activities = enricher.enrich_activities(activities)
(更低级别)来解决此问题。 (我不知道是否有帮助)python-stream
我们如何在时间线上只获得推文(不喜欢,关注或其他应该通知的活动)?
谢谢
如果我理解正确,这应该有效。这有效吗?
stream-django
答案 0 :(得分:1)
注意:我假设您的Follow and Like模型有一个&#34; user&#34;领域。如果没有,最好使用完整的模型类更新问题,并确认您是否正在设置任何其他关系。
stream-django集成提供了一个&#39; Activity&#39;模型Mixin和FeedManager
模型管理器。他们共同努力将活动添加到Feed组和Feed中,这些Feed和Feed的唯一标识符#34;是从Model实例派生的。
默认情况下,Feed ID由应用程序范围settings.USER_FEED
设置决定。这应该适用于您的Tweet
模型,但可能不是您想要的Follow
和Like
模型。与这些模型相关联的活动理想地属于单独的订阅源。这可以通过覆盖Activity.activity_author_feed
属性函数来设置。
class Follow(models.Model, Activity):
# snipping fields
@property
def activity_author_feed(self):
return 'Follow' # Must match a Feed Group defined in the Stream dashboard
@property
def activity_actor_attr(self):
return self.author
要将这些活动复制到通知Feed中,请实施Activity.activity_notify()
功能以返回目标Feed列表。
@property
def activity_notify(self):
return [feed_manager.get_notification_feed(self.user.id)]