python – GetStream(Django) – 无法丰富通知Feed
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – GetStream(Django) – 无法丰富通知Feed,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2386字,纯文字阅读大概需要4分钟。
内容图文
![python – GetStream(Django) – 无法丰富通知Feed](/upload/InfoBanner/zyjiaocheng/734/44d7952cfee44bc290a8891b448896e2.jpg)
我使用GetStream Django软件包与getstream.io进行交互.我使用Enricher()类成功地使用feed_manager.get_user_feed()的Django模型信息来丰富我的活动供稿,但是使用feed_manager.get_notification_feed()无法获得类似的结果
这是我的模型的缩短版本.
class Task(models.Model, Activity):
title = models.CharField()
assigned_to = models.ForeignKey(User)
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(User)
@property
def activity_object_attr(self):
return self
@property
def activity_actor_attr(self):
return self.assigned_to
@property
def activity_notify(self):
return [feed_manager.get_notification_feed(self.assigned_to.id),]
如果我的视图抓取用户Feed:
enricher = Enrich()
feed = feed_manager.get_user_feed(request.user.id)
# feed = feed_manager.get_notification_feed(request.user.id)
activities = feed.get(limit=25)['results']
enriched_activities = enricher.enrich_activities(activities)
我的输出按预期工作,并且每个输出都填充了我的模板中的正确数据:
Actor: {{ activity.actor }}<br>
Title: {{ activity.title }}<br>
Time: {{ activity.time|timesince }}<br>
但是,如果我切换到通知订阅源(请注意注释行外的更改):
enricher = Enrich()
# feed = feed_manager.get_user_feed(request.user.id)
feed = feed_manager.get_notification_feed(request.user.id)
activities = feed.get(limit=25)['results']
enriched_activities = enricher.enrich_activities(activities)
然后,我可以从中获取数据的唯一字段是activity.created_at.
activity.keys的输出显示以下内容:
[u’activities’,u’group’,u’activity_count’,u’created_at’,u’updated_at’,u’actor_count’,u’verb’,u’is_seen’,u’id’,u’is_read’ ]
似乎对于通知提要,演员和对象不会被报告回GetStream:
但是,它是针对用户提要的:
我很难过为什么.我错过了什么?
解决方法:
好的……所以我弄清楚了我的错误.我一直在假设,即notification_feed是一个平坦的饲料.哎呀,糟透了.它实际上是聚合的.因此,我能够修复如下:
代替:
activities = enricher.enrich_activities(activities)
我用了:
enriched_activities = enricher.enrich_aggregated_activities(activities)
然后,在我的基本模板中:
{% for enriched_activity in enriched_activities %}
{% render_activity enriched_activity %}
{% endfor %}
在/activity/aggregated/task.html中查找
{% for activity in enriched_activity.activities %}
{% render_activity activity %}
{% endfor %}
最后在/activity/task.html里面,我看到了这些项目的预期输出.
Actor: {{ activity.actor.first_name }}<br>
Title: {{ activity.object.title }}<br>
Time: {{ activity.time|timesince }}<br>
内容总结
以上是互联网集市为您收集整理的python – GetStream(Django) – 无法丰富通知Feed全部内容,希望文章能够帮你解决python – GetStream(Django) – 无法丰富通知Feed所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。