1

django テンプレートを使用して、時間帯に応じてページのコンテンツを削除するにはどうすればよいですか?

オンラインの食品配達サイトを作成しています。配達注文は時間ごとに区切られています。

たとえば、午後 7 時の配信ドロップの場合、その日の午後 6 時まで通常どおりページを表示したいと思います。次に、午後 6 時 1 分に、ページに「この配達時間は利用できません」のようなメッセージを表示します。

4

1 に答える 1

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 つのアプローチは、特定の時間を必要とするビューをラップできるデコレータを作成することです。

ですから、念のために言っておきます。テンプレート ロジックに依存せず、ビューを保護する

于 2012-08-31T09:14:43.110 に答える