原文:關於django中的get_or_create方法的坑

最近在項目中發現了這樣的一個坑,那就是我們的需求是不能添加一個相同的對象到數據庫中,就通過某些字段的值組合成唯一值到數據庫中去查找數據,如果沒有找到對象,那就創建一條新的數據庫記錄,而剛好django又提供了這種方法,那就是get or create。可是在測試的時候發現會加入相同的對象。 而解決方法就是:其實我們可以從數據庫級別來使這幾個字段組合唯一,這樣如果有重復的數據就會加不進去。 clas ...

2020-01-18 13:54 0 2414 推薦指數:

查看詳情

django - get_or_create() 使用提醒

[omron - debug] user_id建表的時候,不能使用unique,因為一個用戶,可能有多個product_id,相對應的是,get_or_create()的查詢參數,如果在建表中有unique,那么get_or_create()就只能唯一使用這個參數. 1. 准則 ...

Thu May 29 19:22:00 CST 2014 0 9980
get_or_create函數

get_or_create(defaults=None, **kwargs) 一個通過給出的kwargs 來查詢對象的便捷方法(如果你的模型的所有字段都有默認值,可以為空),需要的話創建一個對象。 返回一個由(object, created)組成的元組,元組的object 是一個查詢 ...

Mon Oct 01 01:18:00 CST 2018 0 4422
Django create和save方法

Django的模型(Model)的本質是類,並不是一個具體的對象(Object)。當你設計好模型后,你就可以對Model進行實例化從而創建一個一個具體的對象。Django對於創建對象提供了2種不同的save與create方法,我們來仔細分析下這兩種方式有什么不同。 我們來先看看下面這個例 ...

Wed Mar 13 18:17:00 CST 2019 0 2169
django的objects.get和objects.filter方法的區別

為了說明它們兩者的區別定義2個models 一.先說下django的obj.get(): djangoget是從數據庫的取得一個匹配的結果,返回一個對象,如果記錄不存在的話,它會報錯。 比如我數據庫里有一條記錄,記錄的name的值是"django"的話,我用student ...

Mon Mar 05 06:05:00 CST 2018 0 26469
django的objects.get和objects.filter方法的區別

為了說明它們兩者的區別定義2個models 一.先說下django的obj.get(): djangoget是從數據庫的取得一個匹配的結果,返回一個對象,如果記錄不存在的話,它會報錯。 比如我數據庫里有一條記錄,記錄的name的值是"django"的話,我用student ...

Thu Mar 28 17:36:00 CST 2019 1 1477
Django創建對象的create和save方法

Django的模型(Model)的本質是類,並不是一個具體的對象(Object)。當你設計好模型后,你就可以對Model進行實例化從而創建一個一個具體的對象。Django對於創建對象提供了2種不同的save與create方法,我們來仔細分析下這兩種方式有什么不同。 我們來先看看下面這個例 ...

Sun Jul 28 00:48:00 CST 2019 0 754
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM