Django CMS - DIVIO LogEntry添加实例/最新文件添加到CMS

时间:2017-05-30 17:26:12

标签: python django twitter-bootstrap django-cms

我需要在我的主页上显示一个列表,其中所有文件都添加/更改为我的Django CMS项目的Bootstrap Filer插件。我使用的是LogEntry模型,但它没有将添加操作保存到LogEntry实例。我需要的是这样的东西:

最新变化:

  • 2017年5月30日 - Test.pdf
  • 2017年5月28日 - 申请表格.pdf
  • 2017年5月26日 - Brooker.pdf

我的问题是Add的操作没有保存在LogEntry模型中...每次我添加,例如,Bootstrap Filer插件并添加PDF时,它不保存它的新Entry实例,只有当我删除它。如何在LogEntry模型中更改默认行为以保存插件的添加操作(特别是Bootstrap Filer文件)?

该网站是一个帮助保险经纪人销售的平台。不同公司的价格按月变化。每当新的价格表发生变化时,我需要在最新的更改/更新部分中显示。

我的models.py

poll = list(LogEntry.objects.all())

    def __unicode__(self):
        return unicode(self.poll)

我的模板:

    <ul>
    {% for poll in instance.poll %}
      {% if poll.content_type_id == 54 %} <!-- Bootstrap Files Plugin Content Type -->
        <li>
          {{poll.action_time.date }} - {{ poll.object_repr }} - {{ poll.object_repr }}
        </li>
      {% endif %}
    {% endfor %}
   </ul>

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果Bootstrap3FilePlugin model符合您的需求,但您想改变其行为,那么最好的办法是子类

会是这样的:

  • 创建一个包含新代码的模块。

  • 对插件模型进行子类化

    from aldryn_bootstrap3.models import Bootstrap3FilePlugin
    
        class MyNewBootstrap3FilePlugin(Bootstrap3FilePlugin):
        ...
    
  • 添加新字段,例如:

    last_updated = models.DateTimeField(auto_now_add=True)
    

    请参阅DateTimeField/DateField reference

  • 您还需要将Bootstrap3FileCMSPlugin plugin class子类化为指向新模板:

    render_template = <whatever>
    

    将显示新的last_updated字段。