Django自定义Shamsi日期simple_tag无输出问题求助
解决Django自定义simple_tag无输出问题
核心问题:模板调用语法错误
你的模板里用了变量语法{{ shamsi_date }}来调用simple_tag,但simple_tag属于模板标签,必须使用标签语法{% shamsi_date %}。修改index.html对应代码:
{% load shamsi_tags %} ... <div>{% shamsi_date %}</div> ...
额外排查项(如果修改后仍无输出)
- 确认
homepage已添加到项目settings.py的INSTALLED_APPS列表中:INSTALLED_APPS = [ ... 'homepage', ... ] - 检查
templatetags目录下的__init__.py是否存在(空文件即可),确保Python将该目录识别为合法包。 - 重启Django开发服务器,避免模板或标签缓存导致的不生效。
- 可以在
shamsi_date函数中添加调试输出,验证标签是否被执行:@register.simple_tag def shamsi_date(): now = datetime.now() shamsi_date = jdatetime.fromgregorian(now.year, now.month, now.day) result = shamsi_date.strftime('%Y/%m/%d') print(result) # 查看控制台是否输出波斯历日期 return result
内容的提问来源于stack exchange,提问作者Omid Shojaee
相关产品推荐
相关产品推荐

