title: New users automatically following all users
body: <p>I'm building a fake social network for a project in Django. I've implemented allowing users to 'follow' others if desired (or none at all if they choose). But so far every time I create a user, that user automatically 'follows' all other users in the database. I do not know how to fix this. </p>
  
  <p>Here is the model:</p>
  
  <pre><code>class Profile(models.Model):
      user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
      bio = models.CharField(max_length=200, blank=True)
      followers = models.ManyToManyField('Profile',
                                         related_name="followers_profile",
                                         blank=True, symmetrical=False)
      following = models.ManyToManyField('Profile',
                                         related_name="following_profile",
                                         blank=True, symmetrical=False)
      avatar_thumbnail = ProcessedImageField(upload_to='profile_images',
                                          processors=[ResizeToFill(320, 320)],
                                          format='JPEG',
                                          options={'quality': 40},
                                          blank=True)
      feed_type = models.CharField(max_length=8, choices=GENDER_CHOICES,
                                      default='Both')
  
      # @receiver(post_save, sender=User)
      # def create_user_profile(sender, instance, created, **kwargs):
      #     if created:
      #         Profile.objects.create(user=instance)
      #
      # @receiver(post_save, sender=User)
      # def save_user_profile(sender, instance, **kwargs):
      #     instance.profile.save()
  
      def get_number_of_followers(self):
          if self.followers.count():
              return self.followers.count()
          else:
              return 0
  
      def get_number_of_following(self):
          if self.following.count():
              return self.following.count()
          else:
              return 0
  
      def __str__(self):
          return self.user.username
  </code></pre>
  
  <p>Here is the View that constructs User and Profiles and the form that processes user creation data:</p>
  
  <pre><code>def signup(request):
      form = UserCreateForm()
  
      if request.method == 'POST':
          form = UserCreateForm(request.POST)
          if form.is_valid():
              form.save()
              user = User.objects.get(username=request.POST['username'])
              user_profile = Profile(user=user)
              user_profile.save()
  
              new_user = authenticate(username=form.cleaned_data['username'],
  
              password=form.cleaned_data['password1'])
              login(request,new_user)
              return redirect('index')
      return render(request, 'userapp/signup.html', {
          'form': form
      })
  </code></pre>
  
  <p>Here's the UserCreationForm:</p>
  
  <pre><code>class UserCreateForm(UserCreationForm):
      email = forms.EmailField(required=True)
  
      class Meta:
          model = User
          fields = {"username", "email", "password1","password2"}
  
      def save(self, commit=True):
          user = super(UserCreateForm, self).save(commit=False)
          user.email =self.cleaned_data["email"]
          if commit:
              user.save()
          return user
  </code></pre>