2017-05-30 3 views
2

Bootstrap FilerプラグインとしてDjango CMSプロジェクトに追加/変更されたすべてのファイルを一覧表示する必要があります。私はLogEntryモデルを使用していましたが、LogEntryインスタンスにAddアクションを保存しません。私が必要とすると、そのようなものです:Django CMS - DIVIO LogEntry addインスタンス/最新のファイルがCMSに追加されました

最新の変更:

  • 2017年5月30日 - test.pdfという
  • 2017年5月28日 - アプリケーションForm.pdf
  • 2017年5月26日 - ブルッカー.pdf

私の問題は、LogEntryモデルではAddのアクションが保存されないということです。たとえば、Bootstrap Filer Pluginを追加してPDFを追加するたびに、その新しいEntryインスタンスは保存されません私はそれを削除するときだけです。 LogEntryモデルでPluginのアクションの追加(特にBootstrap Filer File)を保存するようにデフォルトの動作を変更するにはどうすればよいですか?

このウェブサイトは、保険ブローカーの販売を支援するプラットフォームです。異なる会社の価格は毎月変更されます。新しい価格テーブルが変更されるたびに、最新の変更/更新セクションに表示する必要があります。

マイ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> 

それを行うための最善の方法は何ですか?

答えて

0

Bootstrap3FilePlugin modelがニーズに合っていますが、その動作を変更したい場合は、サブクラスです。

それはこのようなものになります。新しいコードを含む、独自のモジュールを作成し

  • サブクラスのプラグインモデル

    from aldryn_bootstrap3.models import Bootstrap3FilePlugin 
    
        class MyNewBootstrap3FilePlugin(Bootstrap3FilePlugin): 
        ... 
    
  • は、たとえば、新しいフィールドを追加します。

    last_updated = models.DateTimeField(auto_now_add=True) 
    

    DateTimeField/DateField referenceを参照してください。

    render_template = <whatever> 
    

    新しいlast_updatedフィールドが表示されます。

  • はまた、新しいテンプレートを指すようにBootstrap3FileCMSPlugin plugin classをサブクラス化する必要があります。私はその動作を変更する必要はありません

+0

は、私はすべてのアドオンの一覧を表示し、編集者は関係なく、それがあったページにCMSで行われていないBootstrap3FilePluginとアクションを更新する必要があります。 –

+0

あなたがその振る舞いを変更する必要がある理由は、プラグインの動作は、削除アクションのLogEntryを作成することですが、アクションを作成するのではなく、いつプラグインが作成されたかを知る必要があるからです。これを行う最も簡単な方法は、その情報を含むタイムスタンプを保存するプラグインクラスのバージョンを作成することです。 –

関連する問題