Django中检查message标签含指定字符串始终返回false问题
你的问题出在模板循环里的条件判断写错了变量名——你用了messages.extra_tags,但循环中当前的消息对象是单数的message,不是整个消息列表messages。
修正后的模板代码
{% for message in messages %} {{ message.extra_tags }} <li> {% if 'undo' in message.extra_tags %} this has undo in tags {% else %} {{ message }} {% endif %} </li> {% endfor %}
补充说明
- 你已经确认
{{ message.extra_tags }}能正确输出"undo",说明单个消息对象的extra_tags属性是正常的,只是条件判断时误引用了整个消息列表messages的属性(它根本没有这个属性,所以判断永远为false)。 - 如果用
message.tags的话,判断逻辑是一样的,只要把条件里的message.extra_tags换成message.tags即可,因为tags属性包含了默认标签(比如info)和你添加的extra_tags,所以'undo' in message.tags也能生效。
内容的提问来源于stack exchange,提问作者kyuden
相关产品推荐
相关产品推荐

