title: How can I create a new Django instance using reverse-foreign key without saving it to DB?
body: <p>Suppose I have the following 2 Django models:</p>
  
  <pre><code>class MyModelA(models.Model):
      my_int = models.IntegerField()
  
  class MyModelB(models.Model):
      my_int = models.IntegerField()
      my_a = models.ForeignKey(MyModelA, related_name="MyModelB_a")
  </code></pre>
  
  <p>I can create instances of <code>MyModelA</code> in two ways:</p>
  
  <pre><code># First technique:
  &gt;&gt;&gt; a = MyModelA.objects.create(my_int=5)
  
  # Second technique:
  &gt;&gt;&gt; a = MyModelA(my_int=5)
  &gt;&gt;&gt; a.save()
  </code></pre>
  
  <p>If I know that I won't need to change <code>a</code> between instantiation and saving, I go with the first technique (to reduce lines of code). If I know that <code>a</code> will be changing between instantiation and saving, I usually go with the second technique shown above (to minimize database accesses).</p>
  
  <p>Analogously when I want to create an instance of <code>MyModelB</code> from a method within <code>MyModelA</code> through the reverse-foreign-key relationship, I do the following:</p>
  
  <pre><code># First technique:
  &gt;&gt;&gt; b = self.MyModelB_a.create(my_int=6)
  </code></pre>
  
  <p>But I don't know how to create instances of <code>MyModelB</code> through the reverse-foreign-key relationship using the second technique. How to do it? What function to call? I want to create an instance using the related_name <code>MyModelB_a</code> without saving it to the DB until I explicitly call <code>save()</code></p>
  
  <pre><code># Second technique:
  &gt;&gt;&gt; b = a.MyModelB_a.WHAT-GOES-HERE(my_int=6)
  &gt;&gt;&gt; b.save()
  </code></pre>