2012-05-29 43 views
1

我想通過JSON格式化爲其語言環境發送到客戶端的日期時間列表。Django - 訪問請求從生產META數據

所以主要的問題是實際上試圖獲取客戶端的語言環境。

我試圖用request.META['LC_TIME'](這似乎是客戶端的日期和時間的首選區域)

這關鍵是在這裏發展,但尚未投入生產。

KeyError: 'LC_TIME'

如何解釋?我在正確的軌道上嗎?

+0

[W3C](http://www.w3.org/International/questions/qa-accept-lang-locales)對相關問題有一個很好的答案「使用HTTP Accept-Language頭來確定用戶的區域設置是否是一個好主意?」希望這個鏈接是有幫助的。 – jhonkola

+0

此鏈接建議不要完全依賴用戶代理的區域設置來確定網站的區域設置。我完全同意它,但它應該用於默認行爲(因爲用戶沒有在網站中選擇任何語言)。這也是我想要做的 –

回答

1

首先,讓我們確定你在'生產環境'下的含義。 在DEV環境下,瀏覽器直接連接到Django Web服務器,並且所有HTTP標頭都直接發送給它。 在生產中,您通常有一個代理。這可能是一個nginx或其他類似的軟件。他們的主要目的是在執行一些檢查時重定向。你應該檢查你的PRODUCTION環境,代理的實際設置是什麼(如果有的話),以及它是否剝離從客戶端發送的任何HTTP頭(這看起來是你得到的錯誤的一個合理原因)。

除了配置問題,建議使用一個默認值:

user_lc_time = request.META.get('LC_TIME', default_lc_time)