2012-05-01 53 views
1

我有兩個不同的模板標籤共享相同的名稱:the_template_tag。有什麼辦法可以區分兩個具有相同名稱的模板標籤嗎?

有什麼辦法來區分這兩個模板標籤嗎?像「source1.the_template_tag」和「source2.the_template_tag」?

這是我的情況。我正在使用django-timezones。有一個名爲本地時間的模板標籤,基本上允許我在客戶端本地時間顯示日期。

{% load timezone_filters %} 
... some more code 
"user_localtime": "{{ serverdate|localtime:user_timezone }}", 

另外,我正在使用Django 1.4的新時區。當我需要使用客戶端本地時間(與django-timezone),然後我開始有問題。基本上,我必須關閉django的時區:

{% load tz %} 
... some more code 
{% localtime off %} 

但是templatetag是一樣的。然後,當然,我得到一個錯誤,當我嘗試使用這兩個:

{% load tz %} 
{% load timezone_filters %} 
... some more code 
{% localtime off %} 
"user_localtime": "{{ serverdate|localtime:user.user_timezone }}", 
+0

我將您的問題恢復爲原始版本。接受答案後,你不應該改變這個問題 - 特別是因爲你的新問題是完全不同的。你應該問一個新的問題,並可以參考這個鏈接。 –

回答

2

你有兩個選擇:使用Django的時區

  1. 停止並使用Django的時區功能,1.4

  2. 如果您必須使用django時區,請編輯源並重命名標記。

我強烈建議#1,並強烈阻止#2。

+0

謝謝Burhan。我嘗試了第一個,但我遇到的問題是日期始終與服務器時區一起顯示。也許我正在以「本地化」日期頂部客戶端時區的方式做錯事情。我會研究這一點。 –

+0

確保你閱讀[時區支持](https://docs.djangoproject.com/en/dev/topics/i18n/timezones/)文檔。首先,它需要啓用。 –

+0

我現在明白了。我必須用[timezone.activate(client_timezone)](https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#selecting-the-current-time-zone)激活時區。我的錯誤是試圖使用[astimezone](http://docs.python.org/library/datetime.html#datetime.datetime.astimezone)等功能轉換爲客戶端時區。 –

相關問題