django テンプレートを使用して、時間帯に応じてページのコンテンツを削除するにはどうすればよいですか?
オンラインの食品配達サイトを作成しています。配達注文は時間ごとに区切られています。
たとえば、午後 7 時の配信ドロップの場合、その日の午後 6 時まで通常どおりページを表示したいと思います。次に、午後 6 時 1 分に、ページに「この配達時間は利用できません」のようなメッセージを表示します。
django テンプレートを使用して、時間帯に応じてページのコンテンツを削除するにはどうすればよいですか?
オンラインの食品配達サイトを作成しています。配達注文は時間ごとに区切られています。
たとえば、午後 7 時の配信ドロップの場合、その日の午後 6 時まで通常どおりページを表示したいと思います。次に、午後 6 時 1 分に、ページに「この配達時間は利用できません」のようなメッセージを表示します。
正直に言うと、望ましくない動作を防ぎたい場合は、テンプレート ロジックに頼るべきではありません。
たとえば、2 つの変数を作成できます。
from django.conf import settings
TIME_OPEN = getattr(settings, 'TIME_OPEN', datetime.now().replace(hour=10, minute=30, second=0, microsecond=0).time())
TIME_CLOSED = getattr(settings, 'TIME_CLOSED', datetime.now().replace(hour=21, minute=30, second=0, microsecond=0).time())
URL パターンに次のようなものを追加できます。
if TIME_OPEN < datetime.now().time() < TIME_CLOSED:
urlpatterns += patterns('shop.customers.views',
(r'^checkout/$', 'checkout'),
)
新しい変数に基づいて、UI ロジックの各テンプレートにコンテキスト変数を提供する context_processor を追加できます{'shop_open': True}
。
これらの例はサーバー時間に依存しているため、ローカル マシンとは異なる可能性があるため、確認する必要があります。もう 1 つのアプローチは、特定の時間を必要とするビューをラップできるデコレータを作成することです。
ですから、念のために言っておきます。テンプレート ロジックに依存せず、ビューを保護する