我想传递这样的网址:
/view/people/?roles=1,2
其中1,2是由javascript函数构成的。在我看来,我有这个:
roles=request.GET.get('roles',None)
if roles:
roles=list(roles)
if type(roles) is list:
filter_options['role__in']=roles
我得到了上述错误。如果我将角色硬编码为:
filter_options['role__in']=[1,2,3]
答案 0 :(得分:0)
这里的问题是<svg xmlns="http://www.w3.org/2000/svg">
<circle cx="40" cy="40" r="40" fill="#472e12" />
<text x="40" y="40" fill="#FFF" font-size="20px" text-anchor="middle" >
1 line
</text>
<text x="40" y="60" fill="#FFF" font-size="20px" text-anchor="middle">
2 line
</text>
</svg>
返回字符串request.GET.get('roles', None)
。由于字符串是可迭代的,因此当您对它们进行迭代(例如'1,2'
)或使用for foo in '1,2'
从它们生成列表时,您不会收到错误。但在这两种情况下,迭代都在字符串中的字符上。
如果你小心只接受以逗号分隔的整数(例如你的URL模式),你可以通过list()
split()
上的字符串手动处理这个并将每个元素转换为整数,例如
','
请注意,我们假设roles = request.GET.get('roles', None)
if roles:
roles = [int(role) for role in roles.split(',')]
filter_options['role__in'] = roles
可以在这里工作,这就是网址模式如此重要的原因。