问题遇到的现象和发生背景
用Django从数据库中获取时间数据,用Django模板过滤器显示到页面上,但那个时间输入框显示不出来
代码
数据库中的数据
用过滤器的情况
HTML
{% for field in form %}
<div>
<label>{{ field.label }}:</label>
{% if field.widget_type == 'datetime' %}
{{ field|date:"Y-m-d H:i:s" }}
{% else %}
{{ field }}
{% endif %}
<div style="color: red">{{ field.errors.0 }}</div>
</div>
{% endfor %}
不用过滤器的情况
HTML
{% for field in form %}
<div>
<label>{{ field.label }}:</label>
{{ field }}
<div style="color: red">{{ field.errors.0 }}</div>
</div>
{% endfor %}
我的解答思路和尝试过的方法
数据库的时间是y-m-d h:m:s 的格式,django取出后就成了y/m/d h:m:s 的格式,可能是因为这个
我想要达到的结果
把时间显示出来
更新
我又排查了一下目前发现问题出自settings.py中的这项设置。设置为True后日期的格式就会由2000-01-01 12:12变成2000/01/01 12:12 从而导致HTML中的日期输入框无法接收到正确的格式然后无法显示。
USE_L10N = True
把它改回False后就一切正常了