Como funcionam os campos de modelo do Django?
Primeiro de tudo, não gosto de programação web. Eu me deparei com o django e li um pouco sobre modelos. Fiquei intrigado com o seguinte código (de djangoproject.com):
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))
Pelo meu entendimento de python, first_name e last_name são variáveis de classe, certo? Como isso é usado no código (porque acho que a configuração Person.first_name ou Person.last_name afetará todas as instâncias de Person)? Por que é usado dessa maneira?