Django模板{% if %}判断相等报TemplateSyntaxError排查与解决
报错根因
Django模板引擎解析标签语法时,要求所有比较运算符(==/!=/>=/<=等)两侧必须保留空格,不能和前后的变量名直接连写。报错代码中request.user.id==comm.user.id将变量与相等运算符==直接连写,引擎无法识别拼接后的语法片段,因此抛出Could not parse the remainder类解析错误。
修复方案
定位到模板文件C:\Users\SHAFQUET NAGHMI\socialnetwork\socialapp\templates\socialapp\comment.html第27行的if判断,给==运算符两侧加上空格即可。修正后的对应代码段如下:
{% for comm in comments %} <a class="comment-user" href="{% url 'profile' comm.user.username %}">{{comm.user}}</a> {{comm.comment}} {% if request.user.id == comm.user.id %} <a class="delete" href="/delete_comment/{{post.id}}/{{comm.id}}/">Delete</a> {% endif %} <br><br> {% endfor %}
语法提示
所有Django模板标签内的独立语法元素之间都需要用空格分隔:比较运算、过滤器传参、url标签传参、模板标签参数都不要和相邻语法元素连写,否则都可能触发同类解析错误。
内容的提问来源于stack exchange,提问作者shafquet Naghmi
相关产品推荐
相关产品推荐

