我在django 1.4上。
我将MY_VAR
变量传递给home.html模板
代码显示简化。这是urls.py
import home
urlpatterns = patterns('',
# homepage
url(r'^/?$', home.Home.as_view(), name='home'),
)
视图home.py
from django.conf import settings
class Home(TemplateView):
""" this view serves the home template """
template_name = 'home.html'
def get_context_data(self, *args, **kwargs):
data = {
'MY_VAR': setting.MY_VAR # where MY_VAR defined in settings.py is a string '2014-12-31'
}
retun data
我有一个模板变量,然后我嵌入js:
<!-- source code of home.html -->
<script type="text/javascript" charset="utf-8">
var myVar = '{{ MY_VAR }}'
</script>
MY_VAR
的格式为'2014-12-31'
。
如果我不使用任何过滤器,那么事情就会起作用,这意味着上面的代码会产生这个:
<!-- computed home.html -->
<script type="text/javascript" charset="utf-8">
var myVar = "2014-12-31";
</script>
但我想要一个不同的日期格式,所以如果我使用date
过滤器作为
var myVar = '{{ MY_VAR|date }}'
// or
var myVar = "{{ MY_VAR|date:'d-m-Y' }}"
无论我传递给日期过滤器,我总是得到一个空字符串var myVar = ''
。此外,没有任何格式化参数的默认{{ MY_VAR|date }}
将返回一个空字符串。
答案 0 :(得分:1)
您可以使用datetime模块修复views.py中的此问题并传递datetime对象,例如:
from datetime import datetime
...
data = {
'MY_VAR': datetime.strptime(settings.MY_VAR, "%Y-%m-%d"),
....
}
return data