Following/Unfollowing ObjectsΒΆ

Creating or deleting the link between a User and any particular object is as easy as calling a function:

from actstream.actions import follow, unfollow

# Follow the group (where it is an actor).
follow(request.user, group)

# Stop following the group.
unfollow(request.user, group)

By default, follow only follows the object where it is an actor. To also include activity stream items where the object is the target or action_object, set the actor_only parameter to False:

# Follow the group wherever it appears in activity.
follow(request.user, group, actor_only=False)

You can also just make a request to the actstream_follow view while authenticated. The request can use either GET or POST.

curl -X GET http://localhost:8000/activity/follow/<content_type_id>/<object_id>/ # Follow
curl -X GET http://localhost:8000/activity/unfollow/<content_type_id>/<object_id>/?next=/blog/ # Unfollow and redirect

Then the current logged in user will follow the actor defined by content_type_id & object_id. Optional next parameter is URL to redirect to.

There is also a function actstream.actions.unfollow which removes the link and takes the same arguments as actstream.actions.follow

Now to retrive the follower/following relationships you can use the convient accessors

from actstream.models import following, followers

followers(request.user) # returns a list of Users who follow request.user
following(request.user) # returns a list of actors who request.user is following

To limit the actor models for the following relationship, just pass the model classes

from django.contrib.auth.models import User, Group

following(request.user, User) # returns a list of users who request.user is following
following(request.user, Group) # returns a list of groups who request.user is following

Generic activity streams for Django

https://secure.travis-ci.org/justquick/django-activity-stream.png?branch=master

Navigation

Donate

Consider supporting the authors on Gratipay:

Fork me on GitHub