2012-01-31 80 views
1

我把這樣的一個模板,從我的觀點:模板訪問request.META.SERVER_NAME

return render_to_response('mytemplate.html', context_instance=RequestContext(request)) 

我試圖訪問我的當前服務器的主機名(在這種情況下,localhost),但它只需在模板中放置{{request.META.SERVER_NAME}}時打印空白。

在我settings.py文件,我沒有任何TEMPLATE_CONTEXT_PROCESSORS定義。我不確定是否需要在那裏指定任何內容,或者是否可以解決問題。

回答

2

您必須添加request上下文處理器,系統將自動添加到模板上下文。或者你可以請求明確地添加到語境詞典render_to_response('foo', {'request': request})

https://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-request

請注意,如果您添加請求上下文處理器,你要記得添加the defaults爲好。

+0

感謝。但現在它返回'1.0.0.127.in-addr.arpa'而不是'localhost'。任何想法呢? – babonk 2012-01-31 01:48:43

+0

@babonk,這是一個不同的問題,由於我不是很熟悉的頭,我不能回答。 – 2012-01-31 01:57:43

+0

用'request.get_host()'得到它。感謝您的幫助 – babonk 2012-01-31 02:13:33