1

index.htmlとviews.pyを作成しました。以下に示すように、日付を取得し、月のデータを口頭で変換します。インデックスページでも動作しますが、他のページからインデックスページを拡張すると日付が来ません。

def index(request):

    datenow = date.today()
    datemonth = date.today().month
    if datemonth == 8:
        date_month="Ağustos"
    elif datemonth == 9:
        date_month = "Eylül"
    elif datemonth == 10:
        date_month = "Ekim"
    elif datemonth == 11:
        date_month ="Kasım"
    elif datemonth == 12:
        date_month ="Aralık"
    elif datemonth == 1:
        date_month ="Ocak"
    elif datemonth == 2:
        date_month ="Şubat"
    elif datemonth == 3:
        date_month ="Mart"
    elif datemonth == 4:
        date_month ="Nisan"
    elif datemonth == 5:
        date_month ="Mayıs"
    elif datemonth == 6:
        date_month ="Haziran"
    elif datemonth == 7:
        date_month ="Temmuz"

    news = New.objects.all()[:10]
    programs= Program.objects.filter(date=date.today())
    print date.today()
    print date_month
    template = "index.html" 
    context = {'news':news,
               'programs':programs,
               'datenow':datenow,
               'date_month':date_month}
    return render_to_response(template,context,context_instance=RequestContext(request))
4

3 に答える 3

3

すべてのページでこの日付と時刻が必要な場合は、Djangoコンテキストプロセッサを使用する必要がありますここにリンク

def datetime(request):

    datenow = date.today()
    datemonth = date.today().month
    if datemonth == 8:
        date_month="Ağustos"
    elif datemonth == 9:
    date_month = "Eylül"
    elif datemonth == 10:
        date_month = "Ekim"
    elif datemonth == 11:
    date_month ="Kasım"
    elif datemonth == 12:
        date_month ="Aralık"
    elif datemonth == 1:
        date_month ="Ocak"
    elif datemonth == 2:
        date_month ="Şubat"
    elif datemonth == 3:
        date_month ="Mart"
    elif datemonth == 4:
        date_month ="Nisan"
    elif datemonth == 5:
        date_month ="Mayıs"
    elif datemonth == 6:
        date_month ="Haziran"
    elif datemonth == 7:
        date_month ="Temmuz"


context = {'datenow':datenow,'date_month':date_month}
return context

settings.pyで

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.contrib.messages.context_processors.messages',
    'django.core.context_processors.csrf',
    # Custom Context Proccessors
    'apps.your-app.context_processor.datetime',


)

次に、HTMLファイルで使用できます

{{ datenow }}{{ date_month }}

于 2012-09-03T09:46:19.313 に答える
0

私が理解していることから。別のページから拡張されたページがあります。ただし、他のページには継承されたデータは表示されません。

index.htmlこれは、がから呼び出されているためviews.pyです。変数と更新はから送信されますview.index()

別のページが継承する場合index.html、それが別の関数によって処理されたという理由だけで日付は更新されませんviews.index()(私の考えがここで明確になっていることを願っています)。

問題の簡単な解決策の1つは、views.indexの内容をコピーして、変数を新しいhtmlテンプレートに再度送信することです。

于 2012-09-03T08:04:50.063 に答える
0

私があなたの質問を理解しているなら、あなたはindex.htmlページを拡張することはによって定義されたビューも拡張すると仮定していると思いますdef index(request)。残念ながら、テンプレートindex.htmlはhtml形式で変数を表示する方法しか提供していないため、各ビューで日付変数を指定する必要があります。

各ビューで日付フォーマットコードを繰り返すのではなく、これはカスタムテンプレートフィルターの良いケースのように見えます。上記のインデックス関数をテンプレートタグに変換する方法をご覧ください(https://docs.djangoproject.com/en/dev/howto/custom-template-tags/を参照)。次に、ビューで日付を設定できます。

def my_other_view(request):
    context = {'date': my_date }

my_date_template_filter次に、テンプレートファイルで次のように使用を構築できます

{extend 'index.html'}

{% block content %}
    {{ my_date|my_date_template_filter}}
{% endblock %}

もちろん、上記のリンクで定義されているように、カスタムテンプレートフィルターを定義する必要があります。

于 2012-09-03T08:07:14.273 に答える