title: Validation on CreateView and UpdateView in django always being triggered, even when model doesn't/shouldn't
body: <p>I am not sure why adding widgets in my GroupForm form in forms.py caused my validations to go haywire.  Before that they were respecting my models, now after adding widget attrs for everything it no longer respects the models and says a field is required for everything.  Is there some other item I missed when defining the widget?</p>
  
  <p>forms.py:</p>
  
  <pre><code>class GroupForm(forms.ModelForm):
      group_name = forms.CharField(widget = forms.TextInput(attrs={'tabindex':'1', 'placeholder':'Groups name'}))
      group_contact = forms.CharField(widget = forms.TextInput(attrs={'tabindex':'2', 'placeholder':'Groups point of contact person'}))
      tin = forms.CharField(widget = forms.TextInput(attrs={'tabindex':'3', 'placeholder':'Groups tin#'}))
      npi = forms.CharField(widget = forms.TextInput(attrs={'tabindex':'4', 'placeholder':'Groups npi#'}))
      notes = forms.CharField(widget = forms.Textarea(attrs={'tabindex':'5', 'placeholder':'Group notes'}))
      #notes = forms.CharField(widget = forms.TextInput(attrs={'tabindex':'5', 'placeholder':'Groups notes'}))
  
      billing_address = forms.ModelChoiceField(queryset=Address.objects.all(), widget=forms.Select(attrs={'tabindex':'6'}))
      mailing_address = forms.ModelChoiceField(queryset=Address.objects.all(), widget=forms.Select(attrs={'tabindex':'7'}))
      start_date = forms.DateField(widget=forms.TextInput(attrs=
                                  {
                                      'class':'datepicker',
                                      'tabindex' : '8',
                                      'placeholder' : 'Groups start date'
                                  }))
      end_date = forms.DateField(widget=forms.TextInput(attrs=
                                  {
                                      'class':'datepicker',
                                      'tabindex' : '9',
                                      'placeholder' : 'Groups term date'
                                  }))
      change_date = forms.DateField(widget=forms.TextInput(attrs=
                                  {
                                      'class':'datepicker',
                                      'tabindex' : '10',
                                      'placeholder' : 'Groups changed date'
                                  }))
  
      change_text = forms.CharField(widget = forms.TextInput(attrs={'tabindex':'11', 'placeholder':'Reason for date change'}))
      #term_comment = forms.CharField(widget= forms.TextInput(attrs={'tabindex':'12', 'placeholder':'Note on group term'}))
      term_comment = forms.CharField(widget = forms.Textarea(attrs={'tabindex':'12',  'placeholder':'Note on group term'}))
      group_phone = forms.RegexField(regex=r'^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$', 
                                  error_message = ("Phone number must be entered in the format: '555-555-5555 or 5555555555'. Up to 15 digits allowed."),
                                  widget = forms.TextInput(attrs={'tabindex':'13', 'placeholder': '555-555-5555 or 5555555555'}))
  
      group_fax = forms.RegexField(regex=r'^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$', 
                                  error_message = ("Fax number must be entered in the format: '555-555-5555 or 5555555555'. Up to 15 digits allowed."),
                                  widget = forms.TextInput(attrs={'tabindex':'15', 'placeholder': '555-555-5555 or 5555555555'}))
  
      group_term = forms.ModelChoiceField(queryset=GroupTerm.objects.all(), widget=forms.Select(attrs={'tabindex':'16'}))
  
      class Meta:
          model=Group
          exclude = ['created_at', 'updated_at']
  </code></pre>
  
  <p>views.py:</p>
  
  <pre><code>class GroupCreateView(CreateView):
      model = Group
      form_class = GroupForm
      template_name = 'ipaswdb/group/group_form.html'
      success_url = 'ipaswdb/group/'
  
      def form_valid(self, form):
          return super(GroupCreateView, self).form_valid(form)
  
  class GroupUpdateView(UpdateView):
      model = Group
      form_class = GroupForm
      template_name = 'ipaswdb/group/group_form.html'
      success_url = 'ipaswdb/group/'
  </code></pre>
  
  <p>Group model:</p>
  
  <pre><code>class Group(models.Model):
      group_name = models.CharField(max_length=50)
      group_contact= models.CharField(max_length=50)
      tin = models.CharField(max_length=50)
      npi =models.CharField(max_length=50)
      notes = models.TextField(max_length = 255,  null=True, blank=True)
      billing_address = models.ForeignKey('Address', related_name = 'billing_address', on_delete=models.SET_NULL, null=True)
      mailing_address = models.ForeignKey('Address', related_name = 'mailing_address', on_delete=models.SET_NULL,  null=True, blank=True)
      start_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
      end_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
      change_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
      change_text = models.TextField(max_length = 255,  null=True, blank=True)
      term_comment = models.TextField(max_length = 255,  null=True, blank=True)
      group_phone=models.CharField(max_length=50)
      group_fax = models.CharField(max_length=50)
      group_term = models.ForeignKey(GroupTerm, on_delete=models.SET_NULL, null=True, blank=True) #quesiton is can a group be termed many times?
      created_at=models.DateField(auto_now_add=True)
      updated_at=models.DateField(auto_now=True)
  
      #provider_location = models.ManyToManyField('ProviderLocations', through='GroupLocations')
  
      def __str__(self):
          return self.group_name
  </code></pre>