Présentation de django-tracking-fields

Suivi de modification d'objets Django

Le blog Makina-corpus

Suivi de modification d'objets Django

Présentation

Avoir un historique "de qui modifie quoi" est un besoin récurrent.

django-tracking-fields permet de rajouter ce suivi sur n'importe quel champ de n'importe quel modèle.

L'application est disponible sur github et pypi.

Elle ajoute un décorateur `@track` permettant de spécifier les champs à surveiller. Le module `django-cuser` est requis pour enregistrer l'utilisateur ayant fait la modification. Les modifications sont ensuite visibles par défaut depuis l'administration de Django.

La technique

Les signaux sont utilisés pour initialiser et enregistrer les changements de valeurs. À l'initialisation d'une instance, les valeurs des champs sont stockées. À la sauvegarde de cette même instance, les valeurs des champs sont comparées aux valeurs stockées et un évènement de modification est enregistré pour les champs dont la valeur diffère.

Là où la plupart des modules similaires stockent l'intégralité de l'instance afin de pouvoir y revenir plus tard, django-tracking-fields ne stocke que les modifications. Cette simplicité permet de garder un code maintenable facilement dans la durée et fonctionnant avec un maximum de versions de Django.

N'hésitez pas à consulter nos Réalisation Django.

Inscription à la newsletter

Nous vous avons convaincus