{"version":"1.0","provider_name":"Syntera","provider_url":"https:\/\/www.syntera.ch\/blog","author_name":"Kail Kuhn Schlicht","author_url":"https:\/\/www.syntera.ch\/blog\/author\/kail\/","title":"Django DRF and Table Historization - Syntera","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"PFZOgHqd8V\"><a href=\"https:\/\/www.syntera.ch\/blog\/2024\/07\/23\/django-drf-and-table-historization\/\">Django DRF and Table Historization<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.syntera.ch\/blog\/2024\/07\/23\/django-drf-and-table-historization\/embed\/#?secret=PFZOgHqd8V\" width=\"600\" height=\"338\" title=\"&#8220;Django DRF and Table Historization&#8221; &#8212; Syntera\" data-secret=\"PFZOgHqd8V\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.syntera.ch\/blog\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","thumbnail_url":"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/07\/dajngo.jpg","thumbnail_width":820,"thumbnail_height":461,"description":"Introduction In the age of data-driven decision making, tracking data changes over time is essential. Whether for compliance, data recovery, or trend analysis, table historization is key. This blog post explores how to implement table historization using Django and Django Rest Framework (DRF), a combination that ensures your data is always trackable and audit-ready. Why [&hellip;]"}