2010-03-23 16 views
6

Ho vari modelli di cui vorrei tenere traccia e raccogliere dati statistici.Tenere traccia delle modifiche - Django

Il problema è come memorizzare le modifiche nel tempo.

ho pensato di varie alternative:

  • Memorizzazione di un registro in un TextField, aprirlo e aggiornarlo ogni volta che il modello viene salvato.
  • In alternativa raccogli una lista e la memorizza in un campo di testo.
  • Salva i registri sul disco rigido.

Quali sono i vostri suggerimenti?

risposta

6

Non reinventare la ruota .. Utilizzare django-reversion per le modifiche di registrazione.

Tuttavia, interromperò le statistiche in un modello separato.

+0

journaling Database sembra eccessivo se sto leggendo il PO correttamente. – msw

+0

@Oli Vorrei saperlo qualche tempo fa, ho dovuto implementare un wiki da zero. Questo avrebbe aiutato molto. A proposito, potrebbe essere un po 'troppo gonfio. In ogni caso, grazie mille !! – RadiantHex

1

Il mio insegnante di chimica elementare: "Se non lo scrivi, non è successo", quindi salva i registri in un file.

Poiché le informazioni del registro sono disgiunte dai dati dell'applicazione (sono i metadati, in realtà), tenerli separati. È possibile accedere a una tabella di database ma dovrebbe essere diversa dal modello.

I dati di sottaceti di testo sono difficili da leggere per gli esseri umani, anche i dati di sottaceti in formato binario; accedi in un formato facilmente analizzabile e i dati possono essere importati facilmente nel software di analisi.

+0

@msw: lo sto facendo come suggerito. Grazie per questo, la registrazione di Python è davvero piuttosto potente. :) – RadiantHex

1

Ho avuto una situazione simile in cui dovevamo mantenere la storia del cambiamento. Ma avevamo anche bisogno di un controllo per monitorare chi ha apportato le modifiche e la possibilità di annullare. Nel nostro approccio, l'archiviazione nel database sembrava più logica. Tuttavia, considerando che hai dati statistici e che gonnna è grande, forse l'approccio basato su file separato sarebbe meglio per te.

In ogni caso è necessario utilizzare un meccanismo generico per registrare le modifiche sui modelli anziché codificare ciascun modello in modo inviduale.

Date un'occhiata a questo: http://www.djangosnippets.org/snippets/1052/

+0

@sharjeel è fantastico! Grazie! – RadiantHex

Problemi correlati