Django中的“get()返回多个模型名称”错误在多线程程序中

1 投票
1 回答
4243 浏览
提问于 2025-04-15 20:14

Django的get_or_create函数在多线程程序中总是会出现“get()返回了多个模型名称”的错误。

我甚至尝试把get_or_create的语句放在lock.acquire()和lock.release()的代码块里面,但还是不行。

这个程序只有在我把线程数设置为1的时候才能正常工作。

数据库使用的是InnoDB引擎。该怎么解决这个问题呢?

1 个回答

2

这个问题不是因为多线程造成的,而是因为数据库中有多个对象符合你的查询条件。你必须用get方法从数据库中选择一个确切的对象,否则会出现错误。

撰写回答