我正在为我的项目使用Python 2.7和Django 1.6.11,我希望迭代得到一个包含这样代码的params列表:
for idx in range(1, int(number_unit_orders) + 1):
is_edit = request.POST.get('edit_%s'.format(str(idx)))
# Do something with is_edit
但是is_edit
始终为None,尽管在请求对象中设置了edit_1
等等。但下面的代码块有效(使用字符串连接):
for idx in range(1, int(number_unit_orders) + 1):
is_edit = request.POST.get('edit_' + str(idx))
# Do something with is_edit
不知道为什么会这样。
答案 0 :(得分:3)
'edit_%s'.format(str(idx))
混合了两种不同类型的格式
你需要选择其中一个并坚持下去
'edit_%s' % str(idx) # 'edit_%d % idx
'test_{}'.format(idx)
你没有得到的原因是因为你试图获得一个不存在的对象,它实际上正在查找edit_%s
的确切字符串
答案 1 :(得分:1)
在format
方法中,您不能使用%
,而是{}
。
请使用此方法将您的行重写为:
is_edit = request.POST.get('edit_{}'.format(idx))
也不需要明确的str
。
答案 2 :(得分:0)
格式不是这样的。你的代码应该是:
'edit_{0}'.format(str(idx))