title: Return Django queryset of items that appear in a single category when items can appear in multiple categories
body: <p>I'm trying to return a queryset of all items in a Category where items can occur in multiple categories.  The relevant model declarations are below along with one of many attempts that did not work.  Is there a way to do this using Django's built-in intermediate table functionality without having to explicitly declare a model for the intermediary table?</p>
  
  <pre><code>class Category(models.Model):
      parent = models.ForeignKey('self',null=True,blank=True)
      name = models.CharField(max_length=150,null=True)
      description = models.CharField(max_length=255,null=True,blank=True)
  
      def items(self):
          curr_category = Category.objects.filter(pk=self.id)
          items_in_category = curr_category.item__categories_set.all().values('item_id')
          return Item.objects.filter(pk__in=items_in_category)
  
      def __unicode__(self):
          return self.name
  
  
  class Item(models.Model):
      name = models.TextField(null=True,blank=True)
      price = models.DecimalField(max_digits=10, decimal_places=2,null=True,blank=True)
      categories = models.ManyToManyField(Category,null=True)
  </code></pre>