0

私のdjangoテンプレートには、forループを使用してリストされたイベントアイテムがいくつかあります。イベントには、PythonのDateTimeであるdate_of_occurrence属性が関連付けられています。日時が現在の日時よりも短い場合は、イベントの背景を赤にする必要があります。

こんな風にやろうと思った

テンプレート内

<ul>
{% for  event in events %}
  <div id="event_div"
    <li>
       event.name<br>
       event.date_of_occurrence
    </li>
  </div>
{% endfor %}
</ul>

cssで

.pastevent{
  background-color:red;
}

event_div idを持つ要素のクラスをに設定するためのjavascript関数が必要です pastevent。誰かがこの関数を実装する方法を教えてもらえますか?

私が理解しているように、この関数はクリックイベントによって起動されるのではなく、ページが読み込まれたときに起動されます。現在のJavaScriptの日付と比較するために、テンプレートから渡されるイベントの日時の値はどのようになりますか?

4

1 に答える 1

1

これを行うために、必ずしもjavascriptを使用する必要はありません。テンプレートタグを使用するいくつかの異なるオプションがあります。

より単純な(そしてより粗雑な)アプローチは、現在の日時をテンプレートにレンダリングすることです。次に、current_dateは、テンプレートでロジックチェックを実行します。

{% for  event in events %}
    {% if event.date_of_occurrence < current_date %}  
    <div id="pastevent">
    {% else %}
    <div id="event_div">
    {% endif %}
    <li>
       event.name<br>
       event.date_of_occurrence
    </li>
  </div>
{% endfor %}

もう1つのオプションは、イベントが過去であったかどうかを返すカスタムテンプレートフィルターを作成し、上記と同じロジックを適用することです。

于 2012-10-18T03:25:37.483 に答える