【问题标题】:Using Django Flatpages in production: how to archive changes for recovery purposes在生产中使用 Django Flatpages:如何归档更改以进行恢复
【发布时间】:2010-08-04 15:52:11
【问题描述】:

我在生产站点中使用 Django Flatpages。我想找出最好的方法来确保管理员在编辑文件时出错,可以检索旧版本的页面。我们有备份等,但恢复起来有点麻烦(即涉及系统管理员,而不是网站编辑器)。

首先,有没有这样的包?我不需要将所有 db 更改归档到文件系统或 MongelDB 的东西,但可能需要 Flatpages 插件。

如果没有,我想出了两个替代方案:

  1. 只要有一个登台服务器,所有的实时变化都会发生,然后在生产环境中加载

    Django flatpages backup?

  2. 一些监控 DB 的外部脚本,在看到 Flatpages 内容的更改后,将最新内容的副本保存在其他表中,例如 FlatpagesHistory。然后网站编辑器可以使用管理服务从 FlatpagesHistory 中检索页面的旧副本。有人做过吗?

感谢您的反馈。

谢谢。

【问题讨论】:

    标签: django django-flatpages


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      没有得到回应,所以我正在挖掘一点。事实证明,您可以非常轻松地实现这一点。

      创建一个这样的模型:

      class OldPage(models.Model):
          """
          Keep old contents from flatpages.
          """
          url = models.CharField('URL',max_length=100, db_index=True)
          title = models.CharField(max_length=200)
          content = models.TextField(blank=True)
          mtime = models.DateTimeField('Modified', db_index=True, auto_now_add=True)
          user = models.ForeignKey(django.contrib.auth.models.User)
      

      然后在 admin.py 文件中,像这样覆盖平面页面管理

      class MyFlatPageAdmin(admin.ModelAdmin):
          def save_model(self, request, obj, form, change):
              """save a copy of the Flatpage to OldPage"""
              history = OldPage()
              history.url = obj.url
              history.title = obj.title
              history.content = obj.content
              history.user = request.user
              history.save()
              obj.save()
      
      admin.site.unregister(FlatPage)
      admin.site.register(FlatPage, MyFlatPageAdmin)
      

      你可以为你的 OldPage 设置一个“只读”管理界面,像这样

      class OldPageAdmin(admin.ModelAdmin):
          readonly_fields = ('url','title','content','mtime','user')
          list_display = ('url','mtime','user','title')
          date_hierarchy = 'mtime'
      
      admin.site.register(lims.pages.models.OldPage, OldPageAdmin)
      

      【讨论】:

        猜你喜欢
        • 2017-01-12
        • 1970-01-01
        • 1970-01-01
        • 2019-08-31
        • 1970-01-01
        • 2015-09-20
        • 1970-01-01
        • 1970-01-01
        • 2021-11-20
        相关资源
        最近更新 更多