2016-12-14 48 views
2

我创建了以下供稿: 通知,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'] 
+0

我正在使用stream-django框架。 –

+0

你能分享你的Follow模型定义吗? –

+0

我已经添加了我的模型定义。 @TommasoBarbugli –

回答

0

当您创建UserFollow类你继承的活动模式,它会创建“关注”活动,并推入流为好。

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

+0

关注通知正在发布到用户的活动Feed中。当用户关注另一个用户时,他们可以看到该用户的后续操作。 示例: 用户A关注用户B.用户A在用户B关注其他人时获取其新闻Feed中的项目。 我该如何避免这种情况? @iandouglas –

+0

根据我上面提供的文档链接,如果从UserFollow类中删除',Activity' mixin,它应该停止发布该活动。 – iandouglas

+0

我明白这一点。但是,如果我删除了Activity mixin,则无法通知用户何时执行这些操作。 –