在 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
会给你一个对象实例(datetime
或 date
或任何你正在使用的)。 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的主要内容,如果未能解决你的问题,请参考以下文章
Django:在 Django 模板引擎中将 uuid 值转换为字符串