On 01/28/2016 02:15 PM, ast wrote:
hello

Here is a class from django framework


from django.db import models

class Article(models.Model):

    titre = models.CharField(max_length=100)
    auteur = models.CharField(max_length=42)
    contenu = models.TextField(null=True)
    date = models.DateTimeField(auto_now_add=True, auto_now=False,
                                verbose_name="Date de parution")

    def __str__(self):
        return self.titre

 From a Python point of view, what are titre, auteur, contenu and date ?
Are they class attributes, so common to all instance of Article ?
It seems so to me.

But if i do in a django shell (run with py manage.py shell)

Article.titre

it doesnt work,
AttributeError: type object 'Article' has no attribute 'titre'
why ?

if I test on a small class

class MyClass:
   i=0

MyClass.i
0

works



When we create an object of class Article

article = Article(titre="Bonjour", auteur="Maxime")
article.contenu = "Les crêpes bretonnes sont trop bonnes !"

we use the same names titre, auteur, contenu, which should be instance
attribute this time. This is confusing to me

thx


My guess is that models.Model has a metclass. Without going too much int details, the metaclass may change the class structure when it's created.

django is very specific and very database oriented.

"
article = Article(titre="Bonjour", auteur="Maxime")
article.contenu = "Les crêpes bretonnes sont trop bonnes !"
"

this is probably the wrong way to assign a value to 'contenu'. You should have a look at django help files, from what I remember it's very well documented with a lot of examples.

jm

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to