这肯定是非常普遍的情况。如何以线程安全的方式处理它?
是。
SQL中的“标准”解决方案是简单地尝试创建记录。如果有效,那就很好。继续。
如果创建记录的尝试从RDBMS中获得“重复”异常,请执行SELECT并继续操作。
但是,Django有一个ORM层,它具有自己的缓存。因此,逻辑被颠倒了,以使普通案例直接且快速地工作,而罕见案例(重复的案例)引发了罕见的异常。

这肯定是非常普遍的情况。如何以线程安全的方式处理它?
是。
SQL中的“标准”解决方案是简单地尝试创建记录。如果有效,那就很好。继续。
如果创建记录的尝试从RDBMS中获得“重复”异常,请执行SELECT并继续操作。
但是,Django有一个ORM层,它具有自己的缓存。因此,逻辑被颠倒了,以使普通案例直接且快速地工作,而罕见案例(重复的案例)引发了罕见的异常。