在 django 模板中将 str 转换为 int

Posted

技术标签:

【中文标题】在 django 模板中将 str 转换为 int【英文标题】:Convert str to int in django template 【发布时间】: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 【参考方案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>

【讨论】:

非常感谢。我将它与年份和月份一起使用。它有效! 是的,它适用于一天,但我也适用于月份和年份,它也适用。谢谢

以上是关于在 django 模板中将 str 转换为 int的主要内容,如果未能解决你的问题,请参考以下文章

python 中将str类型转化为int

Django:在 Django 模板引擎中将 uuid 值转换为字符串

c_cpp 在C ++中将str转换为int

在 Google App Engine 中将 docx 文件呈现为 django 模板

无法在模板中将 UTC 时间戳转换为本地时间

在c中将字符串转换为int [重复]