【问题标题】:Convert str to int in django template在 django 模板中将 str 转换为 int
【发布时间】:2018-06-20 05:01:53
【问题描述】:

我需要将日期日期转换为 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" 变量进行比较。请帮忙

【问题讨论】:

  • userdata.birth_date是什么类型
  • userdata.birth_date 会给你一个对象实例(datetimedate 或任何你正在使用的)。 userdata.birth_date|date:"d" 将为您将日期转换为 str 实例。但是,您需要实际的日期值,即您需要的 int 实例。我同意@Splatmistro 的回答。
  • 为什么感谢@DamodarDahal

标签: python django for-loop django-templates date-conversion


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    你试过了吗:

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

    【讨论】:

    • 非常感谢。我将它与年份和月份一起使用。它有效!
    • 是的,它适用于一天,但我也适用于月份和年份,它也适用。谢谢
    猜你喜欢
    • 2013-04-14
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多