16

mam tę ścieżkę w moim urls.py:Jak uzyskać dostęp do RequestContext w widokach ogólnych opartych na klasach?

archive_index_dict = { 
    'queryset': News.objects.filter(show=True), 
    'date_field': 'date', 
    'template_object_name': 'object_list', 
} 

... 

url(r'^$', 'django.views.generic.date_based.archive_index', 
     archive_index_dict, name='news_archive_index' 
    ), 

Teraz chcę wykryć w szablonie, jeśli strona jest aktualna (to dla menu stylizacji). Ani {{ request.path }} ani {{ request.get_full_path }} nie działają w szablonie.

Co powinienem użyć zamiast tego?

ROZWIĄZANIE

Aby uzyskać request dostępne w szablonach musiałem dodać django.core.context_processors.request do TEMPLATE_CONTEXT_PROCESSORS. To nie jest ustawione domyślnie (od django 1.3).

+0

Czy masz skonfigurowany procesor kontekstowy 'django .... request'? Prawie wszystkie CBV używają 'RequestContext' domyślnie – ilvar

+0

OMG, oczywiście, że nie! :) Dziękuję za podpowiedź, dodałem '' django.core.context_processors.request'' w ustawieniach i 'request' jest już dostępny w szablonach. BTW, możesz opublikować swój komentarz jako odpowiedź i zagłosowałbym na to. –

Odpowiedz

20

Czy masz skonfigurowany procesor kontekstowy 'django.core.context_processors.request'? Prawie wszystkie CBV domyślnie używają RequestContext