5

django_comments を使用して Django GetStream からアクティビティを保存するにはどうすればよいですか? また、このデータを取得するにはどうすればよいですか? ありがとうございました!

https://django.readthedocs.org/en/1.4.X/ref/contrib/comments/のような render_comment_form で Django コメントを実装しました。アクティビティを GetStream に保存する方法と、その方法を知りたいです。ありがとうございます

from django.db import models
from fluent_comments.compat import CommentManager, Comment #, signals
from fluent_comments.models import FluentComment
from stream_django.activity import Activity
from stream_django import feed_manager
from django.db.models import signals
from publications.models import Ad

class ActivityComments(FluentComment, Activity):
    pass

    def __unicode__(self):
        #return "%s COMENTA-->> %s" % (self.user.first_name, self.object_content.item)
        return "%s COMENTA-->> %s" % (self.user.first_name, self.object_pk)

    @property
    def activity_object_attr(self):
        return self

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

    @property
    def activity_time(self):
        return self.created

    @property
    def extra_activity_data(self):
        return {'a': self.item}

    @property
    def activity_notify(self):
        if self.object_content.item.seller.user != self.user:
            target_feed = feed_manager.get_notification_feed(
                self.object_content.item.seller.user.id)
            return [target_feed]

    @classmethod
    def apply_activity_notify(cls, sender, instance, using, **kwargs):

        ad=Ad.objects.get(id=instance.object_pk)
        comment = FluentComment.objects.get(id=instance.id)
        comment.object_content = ad
        comment.activity_notify


"""
signals
"""

signals.post_save.connect(ActivityComments.apply_activity_notify, sender=Comment)

これでActiviyを登録できると思いますが、getstram管理者に行っても何もできません。また、別の質問ですが、レジスターがすでに作成されている場合、それでアクティビティを取得できますか?:

enricher = Enrich()
feed = feed_manager.get_feed('flat', user.id)
activities = feed.get(limit=3)['results']
I hope your answer, Thanks.
4

1 に答える 1

0

Django Comment を使用すると、コメントの保存に使用されるモデルをカスタマイズできます。

最初に、Django コメントのカスタマイズを保持するアプリケーションを作成し、これを settings.py に追加する必要があります。

INSTALLED_APPS = [
    ...
    'my_comment_app',
]

COMMENTS_APP = 'my_comment_app'

次に my_comment_app/models.py で、Comment モデルを Stream アクティビティとして登録する必要があります。

from django.db import models
from django.contrib.comments.models import Comment
from stream_django.activity import Activity

class ActivityComment(Comment, Activity):
    pass

次に、カスタム アプリケーションを Django コメントに登録する必要があります。これを行うには、このコードを my_comment_app/__init__.py に追加します。

from my_comment_app.models import ActivityComment


def get_model():
    return ActivityComment
于 2015-12-18T08:25:21.840 に答える