title: Django: Difference between save() and create() from transaction perspective
body: <p>The create() method in Django creates a model instance then calls save(), which is said to trigger commit. So there should not be any difference in triggering transaction's commit. </p>
  
  <p>But in reality, executing a method that creates a bunch of model instances using create() on Postgresql I am getting <code>transaction aborted, commands ignored until end of transaction</code> exception. The method runs fine with non-transactional db backends. Also, when I replace the create()s with:</p>
  
  <pre><code>m = Model(attr1=..., attr2=...)
  m.save()
  </code></pre>
  
  <p>it runs on Postgresql fine too.</p>
  
  <p>Is there a difference between using <code>save()</code> and <code>create()</code> in the sense of transactions?</p>
  
  <p><strong>edit:</strong> create() also sets <code>self._for_write = True</code> before calling save(), but I couldn't trace it to see if it has any effect on transaction behavior.</p>
  
  <p><strong>edit:</strong> example code can be found <a href="http://pastebin.com/QHZ0NJJY">here</a>.</p>