Python 自动保存到数据库django
我有一个简单的DB模式:Python 自动保存到数据库django,python,django,django-models,Python,Django,Django Models,我有一个简单的DB模式: class testModel(models.Model): modified_by = models.CharField(max_length=50, verbose_name="Modified by") modify_date = models.DateTimeField(auto_now_add=True, auto_now=False) week = models.DateField( verbose_name="Week date"
class testModel(models.Model):
modified_by = models.CharField(max_length=50, verbose_name="Modified by")
modify_date = models.DateTimeField(auto_now_add=True, auto_now=False)
week = models.DateField( verbose_name="Week date" )
type = models.CharField(max_length=10, verbose_name="Type")
value = models.CharField(max_length=4, verbose_name="value")
def __unicode__(self):
return str(self.type)
我想做的是将每个操作保存到第二个表中,例如testModel_history
我知道我可以在第一个表的每次更改期间创建这样的表并导入记录,但我想问您是否有更好的方法来做到这一点
提前感谢,尝试使用继承的模型:
class testModel2(testModel):
def __init__(testModelObj, self):
#for every field: self.field_name = testModelObj.field_name
class Meta:
db_table = 'your_db_table' #if you want a specific one
另外,在testModel中重写save方法:
#in class testModel
def save(self):
testModel2(self).save()
super().save()
如果您真的试图只保存动作的历史记录,请使用Django simple history。 您只需将
history=HistoricalRecords()
添加到所有需要跟踪的模型中
例如:
class testModel(models.Model):
modified_by = models.CharField(max_length=50, verbose_name="Modified by")
modify_date = models.DateTimeField(auto_now_add=True, auto_now=False)
week = models.DateField( verbose_name="Week date" )
type = models.CharField(max_length=10, verbose_name="Type")
value = models.CharField(max_length=4, verbose_name="value")
history = HistoricalRecords()
def __unicode__(self):
return str(self.type)