Django - Fonction à l'intérieur d'un modèle. Comment l'appeler à partir d'une vue?

Je suis de la conception d'un modèle dans Django, mais je ne sais pas si c'est la meilleure façon. J'ai un modèle appelé "l'Histoire" et à l'intérieur de ce modèle, j'ai une fonction spécialisée qui va gérer les insertions à ce modèle.

Alternative 1

class History(models.Model):
    field1 = models.ForeignKey(Request)
    field2 = models.BooleanField()
    field3 = models.DateTimeField()

    def __unicode__(self):
        return str(self.field1.id)

    class Meta: #
        ordering = ['-field3']

    def insert_history(self):
        # Here I will have some business logic to insert the data to the history model

Pour insérer des données à l'Histoire du modèle, je vais toujours avoir à utiliser le "insert_history" de la fonction.

Mes questions sont:

Le code ci-dessus est correcte?

Si oui, comment puis-je appeler le "insert_history" à partir d'un point de vue?


La variante 2

J'ai une autre solution que je l'ai testé et il fonctionne, mais ne se sent pas de la bonne façon. Le code ressemble à ceci:

class History(models.Model):
    field1 = models.ForeignKey(Request)
    field2 = models.BooleanField()
    field3 = models.DateTimeField()

    def __unicode__(self):
        return str(self.field1.id)

    class Meta: #
        ordering = ['-field3']

def insert_history(field1, field2, field3):
    # Here I will have some business logic to insert the data to the history model

Et je l'appeler à partir d'un point de vue comme ceci:

from app.models import insert_history

insert_history('1', True, 'some_date')

quelle est la façon correcte de le faire? Si la variante 1 est correct, comment puis-je appeler le "insert_history" à partir d'un point de vue?

Cordialement,

source d'informationauteur André