Django批量覆蓋更新實(shí)現(xiàn)示例
批量處理用戶上傳的數(shù)據(jù)
利用bulk_create
方法能夠批量處理用戶上傳的數(shù)據(jù), 面對大量的上傳數(shù)據(jù)時(shí), 能夠提升數(shù)據(jù)入庫的速度.
這時(shí)候, 如果上傳的數(shù)據(jù)存在問題, 該怎么處理呢?
例如, 數(shù)據(jù)存在唯一性約束. 但用戶上傳的數(shù)據(jù), 存在重復(fù)項(xiàng).
這時(shí)候,有三種方式.
- 中斷并回滾整個(gè)操作
- 忽略錯(cuò)誤項(xiàng), 繼續(xù)其它項(xiàng)目的寫入
- 覆蓋原先數(shù)據(jù).
前兩種比較好實(shí)現(xiàn).
psqlextra 插件實(shí)現(xiàn)
第三種,如果用的是PostgreSQL的話, 可以考慮用 psqlextra
插件來實(shí)現(xiàn).
例如:
from psqlextra.manager import PostgresManager class Record(models.Model): student = models.ForeignKey(to=Person, on_delete=models.CASCADE, verbose_name='參考人') date = models.DateField(verbose_name='考核時(shí)間') class Meta: verbose_name = '考核成績' verbose_name_plural = verbose_name unique_together = ("student", "date") objects = PostgresManager()
可以用下述方式, 實(shí)現(xiàn)批量覆蓋更新:
from psqlextra.query import ConflictAction Record.objects.on_conflict( ['student', 'date'], ConflictAction.UPDATE ).bulk_insert( [ dict(student=1,date='2021-02-11'), dict(student=2,date='2021-03-11'), ] )
以上就是Django批量覆蓋更新實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于Django批量覆蓋更新的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python中常用操作字符串的函數(shù)與方法總結(jié)
這篇文章主要介紹了Python中常用操作字符串的函數(shù)與方法總結(jié),包括字符串的格式化輸出與拼接等基礎(chǔ)知識,需要的朋友可以參考下2016-02-02Windows環(huán)境下Python3.6.8 importError: DLLload failed:找不到指定的模塊
這篇文章主要介紹了Windows環(huán)境下Python3.6.8 importError: DLLload failed:找不到指定的模塊,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11利用pycharm調(diào)試ssh遠(yuǎn)程程序并實(shí)時(shí)同步文件的操作方法
這篇文章主要介紹了利用pycharm調(diào)試ssh遠(yuǎn)程程序并實(shí)時(shí)同步文件的操作方法,本篇文章提供了利用pycharm遠(yuǎn)程調(diào)試程序的方法,且使用的編譯器可以是服務(wù)器中的虛擬環(huán)境的編譯器,可以實(shí)時(shí)同步本地與服務(wù)器的文件內(nèi)容,需要的朋友可以參考下2022-11-11pandas dataframe拼接后index重新排序方式
這篇文章主要介紹了pandas dataframe拼接后index重新排序方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10python scipy求解非線性方程的方法(fsolve/root)
今天小編就為大家分享一篇python scipy求解非線性方程的方法(fsolve/root),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11python批量修改文件夾及其子文件夾下的文件內(nèi)容
這篇文章主要為大家詳細(xì)介紹了python批量修改文件夾及其子文件夾下的文件內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03python高手之路python處理excel文件(方法匯總)
用python來自動(dòng)生成excel數(shù)據(jù)文件。python處理excel文件主要是第三方模塊庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模塊2016-01-01