title: Using '_id' in Django
body: <p>I am a bit confused how Django handles '_id' property when we use ORM with some models that use foreign key.
  For example:</p>
  
  <pre><code>class CartItem(models.Model):
      user = models.ForeignKey('accounts.CustomUser', related_name='carts', on_delete=models.CASCADE, verbose_name='User')
      product = models.ForeignKey('pizza.Product', related_name='carts', on_delete=models.CASCADE, verbose_name=_('Product'))
      quantity = models.SmallIntegerField(verbose_name=_('Quantity'))
  </code></pre>
  
  <p>And when I use ORM with 'filter' I can easily use something like:</p>
  
  <pre><code>CartItem.objects.filter(user=1, product=1, quantity=1)
  </code></pre>
  
  <p>And Django kind of 'see' that I refer to 'id', but when I use exacly the same line of code, but with 'create' instead of 'filter':</p>
  
  <pre><code>CartItem.objects.create(user=1, product=1, quantity=1)
  </code></pre>
  
  <p>Then it throws an error saying:</p>
  
  <blockquote>
    <p>Cannot assign "1": "CartItem.user" must be a "CustomUser" instance.</p>
  </blockquote>
  
  <p>And to create it I need to use:</p>
  
  <pre><code>CartItem.objects.create(user_id=1, product_id=1, quantity=1)
  </code></pre>
  
  <p>Why is that? Is there some rule here that I don't understand?</p>