title: Django TypeError("'%s' is an invalid keyword argument for this function")
body: <p>So I've seen <a href="https://www.google.com/search?q=django+invalid+keyword+argument+for+this+function&amp;oq=django+invalid+ke&amp;aqs=chrome.0.0j69i57j0l4.7827j0j7&amp;sourceid=chrome&amp;ie=UTF-8#" rel="noreferrer">similar questions</a> about this error, and they all seem to be related to use cases where there are ManyToMany relationships. However, I'm getting this issue even though my model doesn't have M2M relationships, so I wanted to ask and see why this was happening.</p>
  
  <p>Here is my model:</p>
  
  <pre><code>class Course(models.Model):
      name = models.CharField(max_length=64)
      credit = models.IntegerField
      notes = models.CharField(max_length=128)
      resources = models.TextField
      description = models.TextField
      topic = models.CharField(max_length=128)
  </code></pre>
  
  <p>Whenever I create a new instance of this model, I get the <code>TypeError</code> for the <code>credit</code>, <code>resources</code>, and <code>description</code> fields.</p>
  
  <p>I instantiate it like so:</p>
  
  <pre><code>c = Course(
      name='some name',
      credit='8',
      notes='N/A',
      resources='no resources',
      description='N/A',
      topic='some topic'
  )
  </code></pre>
  
  <p><em>However</em> if I change the affected fields to <code>models.IntegerField(max_length=8)</code> and <code>models.TextField(max_length=8)</code>, then the error goes away.</p>
  
  <p>Why does this happen? I was under the impression that the <code>max_length</code> parameter was optional for <code>TextField</code>; I don't even know what it means in the context of an <code>IntegerField</code>. Can someone explain this behavior, and/or what I'm doing wrong?</p>