'How can Django Admin change "history" logs be used to also store copy of data?
Django Admin change "history" logs
As you know Django Admin's sidebar shows a list of APP > MODELS. When you click on a MODEL, the focus area displays a list of RECORDS. Click on a RECORD, then the focus area shows a single RECORD as a form which you can change.
Here, in the upper right hand corner of the change form, is a gray pill-shaped button labeled "HISTORY" with entries like:
Dec. 9, 2021, 4:38 p.m. me Changed Table price headers.
Feb. 26, 2022, 2:06 p.m. me Changed Table date headers.
What I need is a copy of the record data before each change. Later, I need to query the Django database and--in this example--get the version of the record prior to the Feb 26 change.
How can Django Admin change "history" logs be used to also store copy of data?
Not for every Django Model
The rest of the Models & Records in Django Admin should behave normally. I only have a few Models where I need history log and data.
Not to be confused with model history
When discussing this with other Django developers I have to explain the history I need is for the record's data, and not the model. There is a third-party Django packages which does the other thing which I don't need.
Why do I need this?
In my Django site I run a script which requires settings. I'm querying a non-Django-related MongoDB database where I keep a copy of reports generated by several third-party vendors. To help me manage and utilize this data I need a record of each report's headers or schema.
There is a tight coupling between the data I'm storing in Mongo and the data's schema. For this reason I'm storing these headers as "settings" in Django's database. It's been really convient for me to use the Django Administration page to update these schema settings.
However, once in a blue moon a third-party will rename a header or add a new column to their report. When this happens I have to update the settings record in the Django Admin. Currently I don't have access to the historical schemas in my Django project, and have to write custom scripts to access historical data.
My wish is store each version of these records, so I can check the settings change history log. When the requested records needs a historical schema, I can then query the Django database to recall the valid headers for the date range.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
