我试图在AJAX调用中将列表作为data
参数的一部分传递。该调用本身似乎在Javascript中运行良好,但是在Python中访问QueryDict
对象将返回单个整数17
,而不是列表[17]
。
这与Javascript将字符串解释为数字有关系吗?我不知道为什么只有一个元素的列表会转换为整数。
# models.py
def mark_shipped(self, request):
print(request.POST)
orders = request.POST['orders']
print(orders)
for pk in orders:
try:
order = Sale.objects.get(pk=pk)
except ObjectDoesNotExist:
print(pk)
return False
order.shipped = True
order.date_shipped = timezone.now()
order.save()
self.__shipping_confirm(order.email)
return True
哪个输出:
<QueryDict: {'csrfmiddlewaretoken': ['hc4...I2a'], 'orders': ['17']}>
17
1
预期输出:
<QueryDict: {'csrfmiddlewaretoken': ['hc4...I2a'], 'orders': ['17']}>
[17]
编辑:原来我只需要使用request.POST.getlist('orders')
。