Audit یا versioning برای جنگو

سلام
به دنبال راه حلی هستم که بر اساس اون بتونم تغییرات ایجاد شده در نمونه(instance) های یک موجودیت(model) رو نگهداری کنم. یعنی تغییرات به همراه زمان و فرد تغییر دهنده و مقدار قبل از تغییر نگهداری شوند.
قرار نيست تمام موجودیت ها این جوری بشوند فقط موجودیت های مورد نظر (مثلا جدول تراکنش ها).
در ضمن در این مساله جنگو صرفا بک اند است و از طریق GraphQL سروس دهی میکند ( احتمالا این موضوع اهمیتی نداشته باشد زیرا اکثر راه حل ها در سطح مدل یا دیتابیس یا ORM هستند
برای این موضوع پکیج های زیر وجود دارند:
https://djangopackages.org/grids/g/model-audit/?python3=1
آیا کسی تجربه ای در این خصوص داره؟ کدوم پکیج رو پیشنهاد میدید؟

اینم هست:
https://django-simple-history.readthedocs.io/en/latest/

1 Likes

سلام
بله این پکیج یکی از پکیج های معرفی شده بود. اتفاقا بعد از بررسی به این نتیجه رسیدم که از همین پکیج استفاده کنم.
خیلی خلاصه این جورج کار میکنه:
برای مدل های مورد نظر شما یه جدول میسازه با فیلدهای مدل شما و چند فيلد متادیتا. هر تغییری در رکوردهای جدول اصلي رو قبل از اعمال تغییر در جدول تاریخچه نگهداری میکنه. در هر میگریت اگر به مدل فیلدی اضافه کنید به جدول تاریخچه هم اضافه میشه.