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