【问题标题】:stream - Follow activity is shown in news feed流 - 关注活动显示在新闻源中
【发布时间】:2016-12-15 00:46:51
【问题描述】:

我创建了以下提要: 通知、timeline_aggregated、用户和时间线。

在我的应用程序中,用户可以创建帖子并关注其他用户。用户查看他们关注的人的帖子。但是,当我检索单个用户的新闻提要时,关注操作与发布操作一起包括在内。我花了很多时间试图弄清楚为什么会这样。可能我遗漏了什么?

谢谢。

class AppBaseModel(models.Model):
  created_at = models.DateTimeField(blank=True, null=True, auto_now_add=True)
  deleted_at = models.DateTimeField(blank=True, null=True)

  class Meta:
      abstract = True

class UserFollow(AppBaseModel, Activity):

  class Meta:
      verbose_name = 'UserFollow'
      verbose_name_plural = 'UserFollows'

  user = models.ForeignKey(API_USER_MODEL, on_delete=models.CASCADE,   related_name='following_set')
  target_user = models.ForeignKey(API_USER_MODEL, on_delete=models.CASCADE, related_name='follower_set')

  @property
  def activity_actor_attr(self):
      return self.user

  @property
  def activity_notify(self):
      return [feed_manager.get_notification_feed(self.target_user.id)]

  @property
  def extra_activity_data(self):
      return {'user': self.user.id,
            'target_user': self.target_user,
            'created_at': self.created_at}

  @classmethod
  def activity_related_models(cls):
      return ['user', 'target_user']

【问题讨论】:

  • 我使用的是stream-django框架。
  • 你能分享你的跟随模型定义吗?
  • 我已经添加了我的模型定义。 @TommasoBarbugli

标签: getstream-io


【解决方案1】:

您在创建 UserFollow 类时继承了 Activity 模型,它将创建“关注”活动并将它们也推送到流中。

https://github.com/GetStream/stream-django#model-integration “只需在要发布的模型上混合 Activity 类即可。”

【讨论】:

  • 关注通知正在发布到用户的活动供稿中。当用户关注另一个用户时,他们能够看到该用户的关注操作。示例:用户 A 关注用户 B。当用户 B 关注其他人时,用户 A 在其新闻提要中获取项目。我怎样才能避免这种情况? @iandouglas
  • 根据我上面提供的文档链接,如果您从 UserFollow 类中删除 , Activity mixin,它应该停止发布该活动。
  • 我明白这一点。但是,如果我删除了 Activity mixin,我将无法在用户被关注时通知他们。
  • 啊,我想我明白了:用户 A 关注用户 B,用户 B 关注用户 C,所以用户 A 看到用户 B 关注用户 C?让我再深入研究一下,如果我有任何帮助,我会更正上面的答案。
  • 正确。这就是我正在处理的问题。在每个用户的新闻提要中,我只想检索他们关注的用户创建的帖子。 @iandouglas
猜你喜欢
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 2011-01-21
相关资源
最近更新 更多