Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 取决于字段值的字符串数_Python_Django - Fatal编程技术网

Python 取决于字段值的字符串数

Python 取决于字段值的字符串数,python,django,Python,Django,我有一个带整型字段的表单,看起来像: items = forms.IntegerField(min_value=1) 根据此字段的值,应创建相同数量的此字符串: item = '<Item></Item>' 但我只有一个项字符串 context = Context({'item':item }) 我在python shell中尝试了相同的操作,一切正常: >>> items = 4 >>> for item in range(it

我有一个带整型字段的表单,看起来像:

items = forms.IntegerField(min_value=1)
根据此字段的值,应创建相同数量的此字符串:

item = '<Item></Item>'
但我只有一个
字符串

context = Context({'item':item })
我在python shell中尝试了相同的操作,一切正常:

>>> items = 4
>>> for item in range(items):
...    item = "item"
...    print item
... 
item
item
item
item

如果您能帮助我理解为什么会发生这种情况,我将不胜感激。

您似乎只是多次将字符串赋给变量,而不是附加到它。尝试以下方法:

context = Context({'item': ''.join('<Item></Item>' for i in range(items)) })
context=context({'item':''.join(''表示范围(items))中的i)
这里有一种更具可读性的方式:

items = []
for item in range(items):
   items.append('<Item></Item>')

context = Context({'item': ''.join(items) })
items=[]
对于范围内的项目(项目):
项目。附加(“”)
context=context({'item':''.join(items)})

您似乎只是多次将字符串赋给变量,而不是附加到变量上。尝试以下方法:

context = Context({'item': ''.join('<Item></Item>' for i in range(items)) })
context=context({'item':''.join(''表示范围(items))中的i)
这里有一种更具可读性的方式:

items = []
for item in range(items):
   items.append('<Item></Item>')

context = Context({'item': ''.join(items) })
items=[]
对于范围内的项目(项目):
项目。附加(“”)
context=context({'item':''.join(items)})
项目=“”
对于范围内的i(项目):
项目+=“”
项目=“”
对于范围内的i(项目):
项目+=“”

打印项目的输出是什么?也不要重写中间变量。每次都重写for循环中的项。您应该将它附加到一个列表中,例如
context\u items。附加(item)
或连接字符串,例如
item+='
打印项的输出是什么?也不要重写中间变量。每次都重写for循环中的项。您应该将其附加到列表中,例如
context\u items.append(item)
或连接字符串,例如
item+=''
值得注意的是,您的两个代码段产生不同的输出,一个是字符串,另一个是字符串array@Sayse,接得好,谢谢!我已经编辑了答案,所以现在两种方法都应该产生相同的输出。我不是说任何方法都是错误的,数组可能是一件好事(很难说op想要什么)。。。值得注意的是,您的两个代码段产生不同的输出,一个是字符串,另一个是字符串array@Sayse,接得好,谢谢!我已经编辑了答案,所以现在两种方法都应该产生相同的输出。我不是说任何方法都是错误的,数组可能是一件好事(很难说op想要什么)。。。已投赞成票:)