title: Union and Intersect in Django
body: <pre><code>class Tag(models.Model):
    name = models.CharField(maxlength=100)
  
  class Blog(models.Model):
    name = models.CharField(maxlength=100)
    tags =  models.ManyToManyField(Tag)
  </code></pre>
  
  <p>Simple models just to ask my question.</p>
  
  <p>I wonder how can i query blogs using tags in two different ways.</p>
  
  <ul>
  <li>Blog entries that are tagged with "tag1" or "tag2":
  <code>Blog.objects.filter(tags_in=[1,2]).distinct()</code></li>
  <li>Blog objects that are tagged with "tag1" and "tag2" : <strong>?</strong></li>
  <li>Blog objects that are tagged with exactly "tag1" and "tag2" and nothing else : <strong>??</strong></li>
  </ul>
  
  <hr>
  
  <p>Tag and Blog is just used for an example.</p>