title: How do Django model fields work?
body: <p>First of all,I'm not into web programming. I bumped into django and read a bit about models. I was intrigued by the following code ( from djangoproject.com ) :</p>
  
  <pre><code>
  class Person(models.Model):
      first_name = models.CharField(max_length=50)
      last_name = models.CharField(max_length=50)
  
      def __str__(self):
          # Note use of django.utils.encoding.smart_str() here because
          # first_name and last_name will be unicode strings.
          return smart_str('%s %s' % (self.first_name, self.last_name))
  </code></pre>
  
  <p>By my understanding of python , first_name and last_name are class variables , right ? How is that used in code ( because I guess that setting Person.first_name or Person.last_name will affect all Person instances ) ? Why is it used that way ?</p>