Django模板if语句返回错误值

Posted

技术标签:

【中文标题】Django模板if语句返回错误值【英文标题】:Django template if statement return wrong value 【发布时间】:2017-07-20 03:07:14 【问题描述】:

在我的主页我有博客,右侧有帖子类别列表,如:

运动 犯罪

等等。当我在某个类别中时,我会尝试使活动类别按钮突出显示。 我通过将 GET 参数设置到我的主页来做到这一点,例如:/?category=1

现在...在 index.html 模板中我正在这样做:

% for category in category_list %
     category.pk  !=  request.GET.category  // This is for debugging. Returns 1==1
        % if category.pk == request.GET.category %
            <li><a href="% url 'web_serv:index' %?category= category.pk "> category <span class="pull-right">( category.post_set.count )</span></a></li>
        % else %
            <li class="active"><a href="% url 'web_serv:index' %?category= category.pk "> category <span class="pull-right">( category.post_set.count )</span></a></li>
        % endif %
% endfor %

但这不起作用。有什么建议可以解决这个问题,也许还有其他方法?

已编辑:

我认为 category.pk 返回 int 而 request.GET.category 返回 string。下一个问题。如何转换 intstring,以便我可以比较它们?

【问题讨论】:

尝试使用这种方法将字符串转换为int ***.com/a/4831735/977593 【参考方案1】:

这样做是有效的:

% if category.pk != request.GET.category|add:"0" %

显然 |add:"0" 将字符串转换为 int。

【讨论】:

以上是关于Django模板if语句返回错误值的主要内容,如果未能解决你的问题,请参考以下文章

带有 if 语句的 Google App Engine 上的 Django 模板

Django模板if语句中的分组条件

Django:如何在模板的 if 语句中使用变量?

django 模板 if 或语句

以 Django 模板语言快速运行 if 语句

将 if 语句添加到 django-cms 模板标签