带有 URL 参数的 Django 模板检查值

Posted

技术标签:

【中文标题】带有 URL 参数的 Django 模板检查值【英文标题】:Django template check value with URL parameter 【发布时间】:2019-12-07 15:24:24 【问题描述】:

我正在尝试在 html 中创建一个选择来列出所有月份,并且选择的默认值应该等于 URL 中的月份参数

我的网址:

/list-working-session/?month=7&year=2019

月份和年份是参数

在我的 HTML 中:

<select name="month" class="form-control" id="month" required>
  % for i in months %
    % if i == request.GET.month %
      <option value=" i " selected="selected"> i </option>
    % else %
      <option value=" i "> i </option>
    % endif %
  % endfor %
</select>

months 是具有范围(1,13)的视图的上下文,我设法在选择选项中列出了 1 到 12,但我无法使 IF 条件起作用,因此默认选择值等于网址。

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

request.GET.month 是一个字符串,正在与一个整数进行比较。您必须将它们转换为常用类型才能获得所需的结果

请看Need to convert a string to int in a django template

【讨论】:

我明白为什么它不起作用。我通过在值 request.GET.month|add:"0" 之后使用添加过滤器进行了更改,它起作用了 您是否也尝试过使用 int(request.GET.month) 代替? int() 不能在模板中使用,我试了一下,得到错误无法解析剩余部分:'(request.GET.month)' from 'int(request.GET.month )'

以上是关于带有 URL 参数的 Django 模板检查值的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将关键字参数传递给 Django % url % 模板标签?关键字参数值应该来自 html 标签

使用表单在 django 模板中传递 url 参数

Django 模板标签插入或替换 URL 参数

url django模板的动态参数

测试字符串是不是与带有参数的 django url 匹配

django 模板标签缺少 1 个必需的位置参数:值