title: Django 1.7: how to make ManyToManyField required?
body: <p>I have a Django Model with <code>ManyToManyField</code> in it. I need to require user to select at least one M2M value in this field.</p>
  
  <p>I tried to set <code>blank=False</code> to M2M field but it didn't help.</p>
  
  <pre><code>class Skill(models.Model):
      name = models.CharField(max_length=200)
  
  class PersonSkills(models.Model):
      person = models.ForeignKey('Person')
      skill = models.ForeignKey('Skill')
  
  class Person(models.Model):
      name = models.CharField(max_length=200)
      skills = models.ManyToManyField('Skill', through='PersonSkills')
  
  p = Person(name='Bob')
  p.save()
  # success, but I expect that this should throw ValidationError, because I didn't select at least one Skill for this person
  </code></pre>
  
  <p>I can solve this situation with custom <code>Form</code> definition or with override <code>save()</code> method for <code>Person</code> model.</p>
  
  <p>Is it possible to prevent create <code>Person</code> without at least one <code>Skill</code> selected, with set <code>ManyToManyField</code> options? Or I need to create custom logic to handle this situation? Thanks.</p>
  
  <p>I use <code>Django 1.7</code> and <code>Python 3.4</code></p>
  
  <hr>
  
  <p><strong>Update 1.</strong> How to create <code>ModelForm</code> to control M2M? Because in <code>cleaned_data</code> I have only fields that I pass for <code>Person</code> form, and haven't data that I pass as M2M fields. I try to create object in Admin Site and control that <code>Skills</code> selected. I enter <code>Skill</code>'s via <code>inline</code>.</p>
  
  <pre><code># admin.py
  class PersonSkillsInline(admin.TabularInline):
      model = Person.skills.through
      extra = 2
  
  class PersonAdmin(admin.ModelAdmin):
      inlines = [PersonSkillsInline]
  
  admin.site.register(Person, PersonAdmin)
  </code></pre>