Django保持一个领域的历史

2024-03-28 20:04:42 发布

您现在位置:Python中文网/ 问答频道 /正文

使用django1.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

首先,当按下注释对话框上的save按钮时,弹出窗口会重定向到一个空白页面,就好像它被破坏了一样;但是我可以刷新主管理页面来列出注释。 第二,笔记不是针对个人的。我的意思是人2可以选择一个人写的笔记。 我只想显示一个特定的人写的最后一个笔记,同时保留他的笔记的历史。 顺便说一句,我不需要在管理页面中显示历史记录,如果这样更容易的话。 请用这个来指导我。在


Tags: selftrue历史记录modelreturnmodelsdefunicode
1条回答
网友
1楼 · 发布于 2024-03-28 20:04:42

基本思想是在每次更新Note对象时,通过重写Note的“save”方法来创建NoteHist的新实例。在

这里有一个类似的问题:Store versioned history of Field in a Django model

显然,有一个包在每次创建/更新/删除时存储Django模型状态,还支持与Django-admin的集成:https://github.com/treyhunner/django-simple-history

相关问题 更多 >