code: def follow(user, obj, send_action=True, actor_only=True, flag='', **kwargs):
      
      check(obj)
      instance, created = apps.get_model('actstream', 'follow').objects.get_or_create(
          user=user, object_id=obj.pk, flag=flag,
          content_type=ContentType.objects.get_for_model(obj),
          actor_only=actor_only
      )
      if send_action and created:
          if not flag:
              action.send(user, verb=_('started following'), target=obj, **kwargs)
          else:
              action.send(user, verb=_('started %s' % flag), target=obj, **kwargs)
      return instance
docs: Creates a relationship allowing the object's activities to appear in the
      user's stream.
  
      Returns the created ``Follow`` instance.
  
      If ``send_action`` is ``True`` (the default) then a
      ``<user> started following <object>`` action signal is sent.
      Extra keyword arguments are passed to the action.send call.
  
      If ``actor_only`` is ``True`` (the default) then only actions where the
      object is the actor will appear in the user's activity stream. Set to
      ``False`` to also include actions where this object is the action_object or
      the target.
  
      If ``flag`` not an empty string then the relationship would marked by this flag.
  
      Example::
  
          follow(request.user, group, actor_only=False)
          follow(request.user, group, actor_only=False, flag='liking')