gpt4 book ai didi

python - django 中奇怪的 session 对象行为

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:35 26 4
gpt4 key购买 nike

我正在尝试使用字典实现一个简单的购物车

{item_id:数量}

@dajaxice_register
def inc_items(request, item_id):
item_id=int(item_id)
print "ITEMID: ", item_id
#cart is a list of items {(id:qty)}
dajax=Dajax()

if 'cart' not in request.session :
request.session['cart']={}

cart = request.session['cart']

if item_id not in cart:
cart[item_id]=0

cart[item_id] += 1

print "CART:", cart
request.session['cart']=cart
request.session.modified = True
request.session.save()
count=sum(cart.values())
dajax.assign('#cart_items', 'innerHTML', str(count))

我尝试按照文档中的说明使用 request.session.modified无论如何,我都会收到一个非常奇怪的结果

CART: {u'1': 1, 1: 1, u'3': 1, u'2': 1}

注意:我明确地将 item_id 转换为整数,所以我不知道字符串键来自哪里!

注意:购物车对象也不包含超过 4 个键!

提前致谢

最佳答案

session 使用的默认序列化是 JSON 格式。 JSON 只允许字符串作为键,所以当数据保存到数据库时,所有整数键都转换为字符串。当您加载数据时,它们是整数的事实会丢失,并且键是纯字符串(好吧,unicode 字符串)。

最简单的解决方案是在您的 session 数据键中专门使用字符串,并且只将它们转换为整数以供进一步处理。

关于python - django 中奇怪的 session 对象行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24943240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com