title: create() takes 1 positional argument but 2 were given?
body: <p>I have a model named Following that has these fields:</p>
  
  <pre><code>class Following(models.Model):
      target = models.ForeignKey('User', related_name='followers', on_delete=models.CASCADE)
      follower = models.ForeignKey('User', related_name='targets', on_delete=models.CASCADE)
  
      def __str__(self):
          return '{} is followed by {}'.format(self.target, self.follower)
  </code></pre>
  
  <p>What I'm trying to create is a follow button that when pressed, gives the target a follower. Inside the view that has the follow button, has this logic:</p>
  
  <pre><code>class ProfileView(DetailView):
      model = User
      slug_field = 'username'
      template_name = 'oauth/profile.html'
      context_object_name = 'user_profile' # Without this, Django would default to request.user instead which is the logged in user
  
      def post(self, request, slug):
          follower = self.request.user
  
          self.object = self.get_object()
          context = self.get_context_data(object=self.object)
  
          follow_unfollow(follower, self.object.id)  # Error is found inside this function
          return render(request, self.template_name, context=context)
  
  def follow_unfollow(follower, id):
      target = get_object_or_404(User, id=id)
  
      if follower.is_authenticated():
          if follower in target.followers.all():
              target.followers.delete(follower)
  
          else:
              target.followers.create(follower)  # Error outputs: create() takes 1 positional argument but 2 were given
  </code></pre>
  
  <p>When we want to create a row for the new follower, an error happens saying that <code>create() takes 1 positional argument but 2 were given</code> What am I doing wrong?</p>