django - get_or_create() 使用提醒

时间:2023-03-08 22:38:08
django - get_or_create() 使用提醒

[omron - debug] user_id建表的时候,不能使用unique,因为一个用户,可能有多个product_id,相对应的是,get_or_create()中的查询参数,如果在建表中有unique,那么get_or_create()就只能唯一使用这个参数.

1. 准则:

背景: 如果建表 UserProduct, 其中一个user可以对应多个product,这也是我们希望的事情:)

1. 很明显,你的 user_id不可以使用 unique

2. user_id只能使用 db_index

2. 准则:

背景: 如果建表 UserGF, 其中一个user只能有一个GF.

1. 引申: 在使用 UserGF.objects.get_or_create() 或者 UserGF.objects.update_or_create(),

非defaults参数  只能使用 unique的字段, 唯一使用 unique的字段

2. 你的user_id 只能使用 unique

今天遇到的bug 关键字: Duplicate entry. 解决!