2012-09-03 2 views
1

index.html과 views.py를 작성했습니다. 당신이 아래에서 볼 수 있듯이 나는 날짜를 얻고 달 데이터를 말로 변환한다. 인덱스 페이지에서 작동하지만 다른 페이지에서 인덱스 페이지를 확장하면 날짜가 오지 않습니다.Django - 내가 index.html을 확장 할 때 변수를 얻지 못했습니다.

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)) 
+1

무엇 "다른 페이지에서 색인 페이지를 제외 할 때"를 의미합니까? –

+0

당신이 (연장) 또는 (상속)하지 말고 (제외) –

+0

예 미안 해요 확장 의미 – tunaktunak

답변

7

, 당신은 장고 상황에 맞는 프로세서 HTML 파일에서 다음 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', 


) 

에서 Link Here

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 

을 사용해야합니다, 당신은 사용할 수 있습니다

{{ datenow }}{{ date_month }}

+0

이것은 좋은 선택입니다! –

+0

고맙습니다. – tunaktunak

0

내가 알고있는 것. 다른 페이지에서 확장 된 페이지가 있습니다. 다른 페이지에는 상속 된 데이터가 표시되지 않습니다.

이는 간단히 말해 views.py에서 index.html이 호출 되었기 때문입니다. 다른 페이지가 views.index()을 다른 함수에 의해 처리되고되지 단순히 때문에 날짜를 업데이트하지 않습니다 index.html을 상속 할 때 변수와 업데이트는 view.index()

에서 전송 (난 내 생각이 여기에 분명하다 바랍니다).

하나의 간단한 해결책은 views.index의 내용을 복사하고 변수를 새 html 템플릿에 다시 보내는 것입니다.

+0

플랫 페이지에서 어떻게 할 수 있습니까? – tunaktunak

0

나는 당신의 질문을 이해한다면, 나는 당신이에 의해 정의 된 view를 확장하여 index.html 페이지를 확장한다고 가정하고 있다고 생각한다. 불행하게도 각보기에서 날짜 변수를 템플릿으로 제공해야합니다. index.html은 변수를 HTML 형식으로 보는 방법만을 제공합니다.

각보기에서 날짜 형식 코드를 반복하는 대신 사용자 지정 서식 파일 필터를 사용하는 것이 좋습니다. 위의 색인 함수를 templatetag (https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ 참조)로 변환 한 다음보기에서 날짜를 설정할 수 있습니다.

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

다음 템플릿 파일에 당신은 당신이 위의 링크에 정의 된 사용자 지정 서식 필터를 정의해야합니다 그래서 물론

{extend 'index.html'} 

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

처럼 사용 my_date_template_filter을 만들 수있다. 당신은 모든 페이지에서이 날짜와 시간을 원하는 경우에

관련 문제