title: Django - create a new instance of a model
body: <p><strong>Answer</strong>
  <br><br>
  As Sergey pointed out, <strong>class Model(**kwargs)</strong> is invalid, and is a typo in Django documentation. <br>
  The "class" part comes from the markup they used when they wrote it.<br>
  <br>
  So, what they actually meant in the Django documentation is:</p>
  
  <blockquote>
    <p>Creating objects</p>
    
    <p>To create a new instance of a model, just instantiate it like any
    other Python class:</p>
    
    <p><strong>Model(**kwargs)</strong></p>
    
    <p>The keyword arguments are simply the names of the fields you’ve
    defined on your model. Note that instantiating a model in no way
    touches your database; for that, you need to save().</p>
  </blockquote>
  
  <p><br></p>
  
  <p><br><br>
  <strong>Original question</strong>
  <br>
  <br>
  I found the following while reading the  <a href="http://docs.djangoproject.com/en/1.4/ref/models/instances/" rel="nofollow">Django Docs about Model instances</a>:
  <br><br></p>
  
  <blockquote>
    <p>Creating objects</p>
    
    <p>To create a new instance of a model, just instantiate it like any
    other Python class:</p>
    
    <p>class Model(**kwargs)</p>
    
    <p>The keyword arguments are simply the names of the fields you’ve
    defined on your model. Note that instantiating a model in no way
    touches your database; for that, you need to save().</p>
  </blockquote>
  
  <p><br>
  What is the difference between these two codes?</p>
  
  <pre><code>class Model(**kwargs)
  new_model = Model(**kwargs)
  </code></pre>
  
  <p><br>
  I know the second one creates a new instance of the class Model, with kwargs.<br>
  Is the first one different from it? To me, it seems like it rather redefines the Model class.</p>