python - 将字符串转换为日期 django 模板

标签 python django

我正在尝试使用模板标签将字符串转换为模板中的日期,但它不起作用

{% load templat_tag_file %}  
<input name="range2" type="date" {% if request.GET.range2 %}
value="{{ request.GET.range2|convert_str_date }}"{% endif %}/>

我的 template_tag_file.py :

from datetime import datetime
register = template.Library()
@register.filter
def convert_str_date(value):
    return datetime.strptime(value, '%Y-%m-%d').date()

我收到此错误:时间数据“”与格式“%Y-%m-%d”不匹配

最佳答案

您无法分配 python date反对 <input type="date"> 。您需要将其转换为字符串:

from datetime import datetime
register = template.Library()
@register.filter
def convert_str_date(value):
    <b>return str(datetime.strptime(value, '%Y-%m-%d').date())</b>

正如@quick提到的,你需要使用 request.GET相反 request.Get

{% load templat_tag_file %}  
<input name="range2" type="date" {% if request.GET.range2 %}
value="{{ request.GET.range2|convert_str_date }}"{% endif %}/>

更新:

如果格式类似于1988-02-22,则不需要定义templatetag。 ,这会起作用:

<input name="range2" type="date" value="{{ request.GET.range2 }}" />

<input name="range2" type="date" value="1988-02-22" />

关于python - 将字符串转换为日期 django 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60990538/

相关文章:

javascript - Ember createRecord 未创建关系

django - 在 ModelAdmin 中,如何在覆盖 `save_model()` 时获取对象的先前值

python - 多种型号的表格

django - 在 Django Rest Framework 中上传文件并处理 zip 请求

python - 使用defaultdict搜索键/值

python - 绘制按列分组的 Pandas 数据框

python - 如何让 flask 使用 docker 主机安装正确重新加载?

Python:更快的正则表达式替换

python - 在 Python 中每秒更新一个变量?

python - 覆盖设置和包默认值