django-fullhistory è un app Django che fornisce la storia completa per Django.
Per installare:
sudo setup.py install
* Aggiungere middleware fullhistory
MIDDLEWARE_CLASSES = (
& Nbsp; & nbsp; & nbsp; 'Django.middleware.common.CommonMiddleware',
& Nbsp; & nbsp; & nbsp; 'Django.contrib.sessions.middleware.SessionMiddleware',
& Nbsp; & nbsp; & nbsp; 'Django.contrib.auth.middleware.AuthenticationMiddleware',
& Nbsp; & nbsp; & nbsp; 'Django.middleware.doc.XViewMiddleware',
& Nbsp; & nbsp; & nbsp; 'Django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
& Nbsp; & nbsp; & nbsp; 'Fullhistory.fullhistory.FullHistoryMiddleware',
)
* Aggiungere fullhistory alle applicazioni installate:
INSTALLED_APPS = (
& Nbsp; & nbsp; & nbsp; 'Fullhistory',
)
* Nel models.py, selezionare i modelli che si desidera avere fullhistory:
da fullhistory register_model importazione
register_model (SKU)
register_model (Ordine)
register_model (OrderItem)
Note
& Nbsp; * Records per i modelli che utilizzano ereditarietà non astratto sono memorizzati separatamente per ogni tavolo. Questo ha a che fare con l'attuale implementazione di serializzazione in Django. Anche tabelle padre sono in grado di essere indipendente modificata dei loro figli ereditarie.
& Nbsp; * Fullhistory per non astratto modello ereditarietà è leggermente meno performante in quanto segue il campo dei genitori.
& Nbsp; * metodi queryset eliminare () e update () non si innescano i segnali e quindi sono al di fuori di fullhistory
& Nbsp; * funzionalità Admin FullHistory è limitata in Django 1.0
Requisiti
- Python
- Django
Limitazioni
- molti a molti campi non registrare automaticamente le modifiche. Le rettifiche sono state effettuate nel modello di amministrazione per compensare questo. Tuttavia, i cambiamenti fatti al di fuori l'amministratore che non sono regolate possono presentare una registrazione ritardata. (Django Ticket # 5390)
- I file non vengono mantenute, solo il loro percorso.
- (Django 1.0 solo) Il campo FullHistory non funziona come previsto con non-astratto modello di ereditarietà, primarly per gli oggetti hanno ereditato l'altro è campo FullHistory (Django Ticket # 9546)
- FullHistory tronca microsecondi per DateTimeFields
- DateTimeFields sono deserializzate come stringhe
- deleghe Modello è inefficiente, rischia di creare voci della cronologia duplicate. Sarà risolto.
I commenti non trovato