[afpy/django] django-admin - insert lors d'un update

Olivier Lange olange81 at gmail.com
Mer 17 Mai 21:30:53 CEST 2017


Hello à tout la 2.

Merci du retour, c'est dans la direction que je voulais prendre. Un trigger
mais sur Django.

Je regarde ça. Merci.
Olivier

Le 17 mai 2017 8:41 PM, "Hicham El Mansouri" <elmansou at gmail.com> a écrit :

> Je suis d'accord avec Sébastien Corbin. Il faut passer par un signal.
> C'est un bon pattern pour loose coupling.
>
> Hicham
>
>
>
>   <https://mailtrack.io/> Sent with Mailtrack
> <https://mailtrack.io/install?source=signature&lang=en&referral=elmansou@gmail.com&idSignature=22>
>
> 2017-05-17 16:03 GMT+02:00 Sébastien Corbin <seb.corbin at gmail.com>:
>
>> Hello Olivier,
>>
>> Bienvenue dans la communauté, je suis assez neuf également, et comme dans
>> tout framework, j'ai pris
>> pour réflexe de ne pas réinventer la roue et de réutiliser des packages
>> maintenus et testés par la communauté.
>>
>> Pour t'aider dans cette recherche, je te conseille le site
>> djangopackages.org qui regroupe en sujet et compare les différents
>> packages.
>> Pour ton cas, regarde du côté de https://djangopackages.org/
>> grids/g/model-audit, ainsi tu trouveras django-reversion (celui-ci se
>> sert des signaux django pour détecter les changements).
>>
>> Bon courage,
>>
>> --
>> Sébastien Corbin
>>
>> On 17 May 2017, at 15:54, Olivier Lange <olange81 at gmail.com> wrote:
>>
>> Hello aux participants,
>>
>> Neo venu sur Django, et Python, après quelques années de dev sur php,
>> j'ai enfin décidé de sauter le pas, et de m'attaquer à Python, et du coup
>> django, qui me semble un projet mature.
>>
>> Vous risquez donc de me voir poser plein de questions, le temps de me
>> former, et je vous remercie de votre patience ;)
>>
>> Première question, dont je n'arrive pas a trouver la réponse
>> "simplement". J'ai activé django admin, crer une apps, avec son model, et
>> activer la configuration des tables dans Django admin. Jusque la, tout va
>> bien.
>>
>> Dans mon model, j'ai 4 tables, 2 principales, et 2 qui me servent à
>> historiser mes modifications. J'ai en effet besoin de savoir qui (user) à
>> modifier quoi (valeur avant/après) et quand (user) sur mes tables, pour des
>> raisons de tracabilité.
>>
>> Une idée de comment je peux le faire? L'idée serait que lorsque j'ai un
>> update sur la table, je puisse faire un insert sur une autre table. Je
>> pourrais le faire via des trigger en Mysql, mais je me dit qu'il y a peut
>> etre une solution directement avec Django?
>>
>> Mon model (qui doit parler de lui même):
>>
>> class Trunks(models.Model):
>>     idTrunk = models.CharField(max_length=20,)
>>     name = models.CharField(max_length=200)
>>     ip_registrat = models.CharField(max_length=200)
>>     mdp = models.CharField(max_length=50)
>>     signal_type = models.CharField(max_length=50)
>>     nbr_can_tot = models.IntegerField(default=0)
>>     nbr_can_in = models.IntegerField(default=0)
>>     nbr_can_out = models.IntegerField(default=0)
>>     ndi = models.CharField(max_length=20)
>>
>>     def __str__(self):
>>         return '%s (%s)' % (self.name, self.idTrunk)
>>
>> class Trunk_modif(models.Model):
>>     date_modif = models.DateTimeField('date published')
>>     user = models.CharField(max_length=20)
>>     champ = models.CharField(max_length=20)
>>     old_value = models.CharField(max_length=200)
>>     new_value = models.CharField(max_length=200)
>>     trunk_ref = models.ForeignKey(Trunks)
>>
>> class number(models.Model):
>>     trunk_ref = models.ForeignKey(Trunks)
>>     number = models.CharField(max_length=20)
>>     insee = models.CharField(max_length=10)
>>     redirect = models.CharField(max_length=20)
>>
>>     def __str__(self):
>>         return '%s' % (self.number)
>>
>> class number_modif(models.Model):
>>     date_modif = models.DateTimeField('date published')
>>     user = models.CharField(max_length=20)
>>     champ = models.CharField(max_length=20)
>>     old_value = models.CharField(max_length=200)
>>     new_value = models.CharField(max_length=200)
>>     number_ref = models.ForeignKey(number)
>>
>>
>>
>> Merci.
>>
>> Olivier
>>
>> _______________________________________________
>> django mailing list
>> django at lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>>
>>
>> _______________________________________________
>> django mailing list
>> django at lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>
>
>
> --
> Hicham El Mansouri
>
> _______________________________________________
> django mailing list
> django at lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.afpy.org/pipermail/django/attachments/20170517/e1d57c6f/attachment-0001.html>


Plus d'informations sur la liste de diffusion django