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 
<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 <[email protected]> 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
> [email protected]
> http://lists.afpy.org/mailman/listinfo/django

Attachment: signature.asc
Description: Message signed with OpenPGP

_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à