title: Django Model Form clean method not being called
body: <p>I have used a Django model form to create HackathonTeam instances. The issue I am facing here is that custom clean method that I have used is not being called. All the other default validations are happening correctly.</p>
  
  <pre><code># models.py
  class HackathonTeam(models.Model):
      name = models.CharField(max_length=30)
      leader = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='leader_teams')
      hackathon = models.ForeignKey(Hackathon, on_delete=models.CASCADE, related_name='hack_teams')
      vacancies = models.PositiveIntegerField(default=0)
      current_members = models.ManyToManyField(CustomUser, related_name='member_teams')
      skills_required = models.ManyToManyField(Skill, related_name='hack_requirements')
      cutoff_date = models.DateTimeField(null=True, blank=True)  # Someone may not wish to have a cut-off date
      closed = models.BooleanField(default=False)
  
  # forms.py ########
  class HackathonTeamForm(forms.ModelForm):
      class Meta:
          model = HackathonTeam
          exclude = ['leader', 'current_members', 'closed']
  
      def clean(self):
          print("Inside clean")
          cleaned_data = super(HackathonTeamForm, self).clean()
          print(cleaned_data)
          if HackathonTeam.objects.filter(hackathon=cleaned_data.get("hackathon"),
                                          name=cleaned_data.get("name")).exists():
              print(1)
              raise forms.ValidationError("A team with the same name already exists.")
          return cleaned_data
  
  # views.py #########
  
  @login_required(login_url='users:login')
  def add_hackathon_team(request):
      if request.method == 'POST':
          form = HackathonTeamForm(request.POST)
          if form.is_valid():
              cd = form.clean()
              print(cd)
              print("Data is valid")
              # form.save()
              team = form.save(commit=False)
              team.leader = request.user
              team.save()
              return redirect('users:view_hackathon_team', pk=team.id)
      else:
          form = HackathonTeamForm()
      return render(request, 'users/add_hackathon_team.html', {'form': form})
  </code></pre>
  
  <p>The print statement in the view is being printed and new Teams are created as well. The only issue is that the clean method is not called and duplicate Teams can be created as well. </p>