title: FieldDoesNotExist: product_purchase_categories has no field named 'None' ManyToMany
body: <p>I am trying to add ManyToMany relationships to an instance in and Django continues to throw a strange error.  I am hoping someone has seen this before or may have some insight into why I am seeing this.  Below are the two models I am working with.  My product model is quite large so I slimmed it down.  The other fields should not have any relevance.  </p>
  
  <pre><code>class baseModel(models.Model):
      created_date = models.DateTimeField(auto_now_add=True,blank=True)
      updated_date = models.DateTimeField(auto_now=True,blank=True)
      inactive = models.BooleanField(default = False,blank=True)
  
      class Meta:
          abstract = True
  
  
  class category(baseModel):
  name = models.CharField(max_length=255, help_text="",blank=True)
  short_name = models.CharField(max_length=255, help_text="",blank=True)
  external_id = models.IntegerField(help_text="",blank=True,null=True)
  sales_channel = models.ForeignKey('sales_channel',related_name = 'sales_categories',null=True,blank=True,on_delete=models.SET_NULL)
  purchase_channel = models.ForeignKey('purchase_channel',related_name = 'purchase_categories',null=True,blank=True,on_delete=models.SET_NULL)
  parent_category = models.ForeignKey('self',related_name='child_categories',null=True,blank=True,on_delete=models.SET_NULL)
  category_level = models.IntegerField(null=True,blank=True)
  
  def _product_count(self):
     "Number of Products"
     product_count = self.category_products.count()
     return product_count
  product_count = property(_product_count)
  
  def __str__(self):
      return self.name# + ' ('+str(self.product_count)+')'
  
  
  class product(baseModel):
  title = models.CharField(max_length=255, help_text="The title of the product.")
  additional_details = models.CharField(max_length=255, help_text="Additional product information provided by the supplier",null=True,blank=True,)
  description = models.TextField(max_length=4000, help_text="")
  # ...
  purchase_channel = models.ForeignKey('purchase_channel',related_name = 'products',null=True,blank=True,on_delete=models.SET_NULL)
  purchase_external_id = models.IntegerField(help_text="external_id from purchasing channel",null=True,blank=True)
  purchase_cost = models.DecimalField(max_digits=9,decimal_places=2, help_text="pruchase cost of the product.", blank=True, null=True)
  purchase_categories = models.ManyToManyField(category,related_name = 'categories_products',blank=True)
  # ...
  def __str__(self):
      return self.title
  </code></pre>
  
  <p>Below is what I ran in shell.  Grabbed a product, grabbed a category, tried to add said category to product and then receive the following error.</p>
  
  <pre><code>In [44]: prod = product.objects.get(id=2705)
  
  In [45]: prod
  Out[45]: &lt;product: Embassy&amp;trade; Italian Stone&amp;trade; Design Genuine Leather Backpack/Cart&gt;
  
  In [46]: cat = category.objects.get(id=324)
  
  In [47]: cat
  Out[47]: &lt;category: Accessories&gt;
  
  In [48]: prod.purchase_categories.add(cat)
  ---------------------------------------------------------------------------
  KeyError                                  Traceback (most recent call last)
  /usr/local/lib/python3.4/dist-packages/django/db/models/options.py in get_field(self, field_name)
      565             # field map.
  --&gt; 566             return self.fields_map[field_name]
      567         except KeyError:
  
  KeyError: None
  
  During handling of the above exception, another exception occurred:
  
  FieldDoesNotExist                         Traceback (most recent call last)
  &lt;ipython-input-48-f73a74ace2f4&gt; in &lt;module&gt;()
  ----&gt; 1 prod.purchase_categories.add(cat)
  
  /usr/local/lib/python3.4/dist-packages/django/db/models/fields/related_descriptors.py in __get__(self, instance, cls)
      496             return self
      497 
  --&gt; 498         return self.related_manager_cls(instance)
      499 
      500     def _get_set_deprecation_msg_params(self):
  
  /usr/local/lib/python3.4/dist-packages/django/db/models/fields/related_descriptors.py in __init__(self, instance)
      779             self.reverse = reverse
      780 
  --&gt; 781             self.source_field = self.through._meta.get_field(self.source_field_name)
      782             self.target_field = self.through._meta.get_field(self.target_field_name)
      783 
  
  /usr/local/lib/python3.4/dist-packages/django/db/models/options.py in get_field(self, field_name)
      566             return self.fields_map[field_name]
      567         except KeyError:
  --&gt; 568             raise FieldDoesNotExist("%s has no field named '%s'" % (self.object_name, field_name))
      569 
      570     def get_base_chain(self, model):
  
  FieldDoesNotExist: product_purchase_categories has no field named 'None'
  </code></pre>
  
  <p>Any help would be much appreciated and thank you in advance.</p>