使用 django 1.7 管理页面,我希望 Person 对象具有唯一的注释,同时保留注释字段的历史记录。 这是我的代码:
class Note(models.Model):
note = models.TextField(blank=True, default='')
date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.note
class NoteHist(models.Model):
id = models.AutoField(primary_key=True)
note = models.ForeignKey('Note')
def __unicode__(self):
return str(self.note)
class Person(models.Model):
name = models.CharField(max_length=20, primary_key=True)
note = models.ForeignKey('NoteHist')
def __unicode__(self):
return self.name
首先,当按下笔记对话框上的保存按钮时,弹出窗口重定向到一个空白页面,就好像它被破坏了一样;但我可以刷新主管理页面以列出注释。 其次,注释不是特定于人的。我的意思是 Person2 可以选择 Person1 写的笔记。 我只想显示特定 Person 写的最后一个笔记,同时保留他笔记的历史记录。 顺便说一句,如果这样更容易的话,我不需要在管理页面中显示历史记录。 请指导我。
请您参考如下方法:
基本思想是在每次通过覆盖 Note 的“保存”方法更新 Note 对象时创建一个新的 NoteHist 实例。
这是一个类似的问题:Store versioned history of Field in a Django model
显然,有一个包在每次创建/更新/删除时存储 Django 模型状态,还支持与 django 管理集成:https://github.com/treyhunner/django-simple-history
