2016-12-14 42 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,則無法通知用戶何時執行這些操作。 –