创建唯一的字典键

Thu*_*orn -7 python django python-3.x

问题

我正在Django中进行电子商务,用户可以在将它们添加到购物车之前选择多个项目,当点击添加到购物车按钮时,我在用户的购物车中使用时间戳作为对象ID.

当点击添加到购物车按钮时,我有一个词典

{"item_id":"qty"}
Run Code Online (Sandbox Code Playgroud)

创建购物车对象就像

{"timestamp":"item_id;qty"}
Run Code Online (Sandbox Code Playgroud)

时间戳用作唯一ID,因此如果需要删除,我可以为购物车的行提供id,如果是,则在后端发送购物车元素的id并从用户的购物车中删除相同的元素宾语

时间戳不是唯一的......进程太快,以至于时间戳保持不变并且不会生成不同的密钥,任何具有不同时间戳的建议都将受到赞赏.

dec*_*eze 5

时间戳用作唯一ID,因此如果需要删除,我可以为购物车的行提供id

你正在咆哮错误的树,试图解决一个不适合原始问题的解决方案中的问题; 即你有一个XY问题.

最简单的解决方案:使用a list而不是a dict.根据list定义,它将具有唯一键.a的唯一问题list是在Web场景中,您可能正在处理两个并行或过时的请求,并且索引可能在到达您的服务器时引用不同的元素.

因此,要使用真正独特,不变的ID,请使用以下uuid模块:

from uuid import uuid4

a = [1 ,2 ,3 , 4 , 5]
b = {}
for i in a:
    b[uuid4()] = i
Run Code Online (Sandbox Code Playgroud)

你去,保证独特的ID.