在django模板中将str转换为int

Convert str to int in django template

我需要将日期日期转换为 int 以与模板中的其他值进行比较。

像这样:

views.py

def userEdit(request):
    userdata = user.objects.get(id=request.session['user_id'])
    dic.update({'userdata':userdata, 'dayrange': range(1,32)})
    return render(request, 'my_app/userEdit.html', dic)

my_app/userEdit.html

<select name="day">
  {% for i in dayrange %}
    {% if i == userdata.birth_date|date:"d" %}
      <option value="{{ i }}" selected>{{ i }}</option>
    {% else %}
      <option value="{{ i }}">{{ i }}</option>
    {% endif %}
  {% endfor %}
</select>

我需要将 userdata.birth_date|date:"d" 转换为 int,然后在 for 循环中与 "i" 变量进行比较。请帮助

你试过了吗:

{% if i == userdata.birth_date.day %}
  <option value="{{ i }}" selected>{{ i }}</option>

您可以使用参数为 0 的 add 过滤器将其强制转换为整数,例如

{% if i == userdata.birth_date|date:"d"|add:0 %}