Django-fr

Forum

#1 20-11-2015 11:01:43

Alcolo47
Membre
Lieu : Toulouse
Inscription : 20-11-2015
Messages : 7

Question de style

Salut,

Quel est l'écriture le plus dango / pythonic ?

class Journal(models.Model):
    name = models.CharField(max_length=50)

    def create_article(self, text):
        a = Article()
        a.journal = self
        a.text = text
        return a


class Article(models.Model):
    journal = models.ForeignKey(Journal, related_name='articles')
    text = models.CharField(max_length=1000)

    @classmethod
    def create_article(cls, journal, text):
        a = cls()
        a.journal = journal
        a.text = text
        return a

Quel fonction garderiez-vous entre Journal.create_article et Article.create_article ?
Ajouteriez-vous un a.save() dans ces fonctions ?

(J'ai écris ce code à la volée, il peut y avoir des erreurs, mais peu importe, la philo est là)


=================================================
Nouveau sur forum.
Développe un site python3 / django / django-cms sur un vps / d'ovh

Hors ligne

#2 20-11-2015 16:55:28

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Question de style

Bonjour,

Pour ce genre de chose, j'utilise le manager (https://docs.djangoproject.com/fr/1.8/t … m-managers).
Note que ces fonctions sont redondantes avec Article.objects.create(journal=journal, text=text) par exemple.

Hors ligne

#3 24-11-2015 17:13:56

Alcolo47
Membre
Lieu : Toulouse
Inscription : 20-11-2015
Messages : 7

Re : Question de style

Je me doutais bien que j'avais sauté des lignes en lisant la doc ...

C'est tellement mieux avec Manager.create: J'adopte.


=================================================
Nouveau sur forum.
Développe un site python3 / django / django-cms sur un vps / d'ovh

Hors ligne

Pied de page des forums