Django批量覆盖更新实现示例

 更新时间:2023年09月20日 11:16:48   作者:alue  
这篇文章主要为大家介绍了Django批量覆盖更新实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

批量处理用户上传的数据

利用bulk_create 方法能够批量处理用户上传的数据, 面对大量的上传数据时, 能够提升数据入库的速度.

这时候, 如果上传的数据存在问题, 该怎么处理呢?

例如, 数据存在唯一性约束. 但用户上传的数据, 存在重复项.

这时候,有三种方式.

  • 中断并回滚整个操作
  • 忽略错误项, 继续其它项目的写入
  • 覆盖原先数据.

前两种比较好实现.

psqlextra 插件实现

第三种,如果用的是PostgreSQL的话, 可以考虑用 psqlextra 插件来实现.

例如:

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='考核时间')
    class Meta:  
        verbose_name = '考核成绩'  
        verbose_name_plural = verbose_name  
        unique_together = ("student", "date")
    objects = PostgresManager()

可以用下述方式, 实现批量覆盖更新:

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批量覆盖更新实现示例的详细内容,更多关于Django批量覆盖更新的资料请关注脚本之家其它相关文章!

相关文章

  • python如何输出反斜杠

    python如何输出反斜杠

    在本篇内容中小编给大家整理了一篇关于python怎么输出反斜杠的相关基础文章,有兴趣的朋友们可以学习参考下。
    2020-06-06
  • Python中常用操作字符串的函数与方法总结

    Python中常用操作字符串的函数与方法总结

    这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下
    2016-02-02
  • 使用matplotlib画图之坐标轴不等距

    使用matplotlib画图之坐标轴不等距

    这篇文章主要介绍了使用matplotlib画图之坐标轴不等距方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块

    Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块

    这篇文章主要介绍了Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 利用pycharm调试ssh远程程序并实时同步文件的操作方法

    利用pycharm调试ssh远程程序并实时同步文件的操作方法

    这篇文章主要介绍了利用pycharm调试ssh远程程序并实时同步文件的操作方法,本篇文章提供了利用pycharm远程调试程序的方法,且使用的编译器可以是服务器中的虚拟环境的编译器,可以实时同步本地与服务器的文件内容,需要的朋友可以参考下
    2022-11-11
  • pandas dataframe拼接后index重新排序方式

    pandas dataframe拼接后index重新排序方式

    这篇文章主要介绍了pandas dataframe拼接后index重新排序方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • python scipy求解非线性方程的方法(fsolve/root)

    python scipy求解非线性方程的方法(fsolve/root)

    今天小编就为大家分享一篇python scipy求解非线性方程的方法(fsolve/root),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python批量修改文件夹及其子文件夹下的文件内容

    python批量修改文件夹及其子文件夹下的文件内容

    这篇文章主要为大家详细介绍了python批量修改文件夹及其子文件夹下的文件内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 用代码帮你了解Python基础(1)

    用代码帮你了解Python基础(1)

    这篇文章主要用代码帮你了解Python基础,使用数据类型和变量以及字符串和格式化的示例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • python高手之路python处理excel文件(方法汇总)

    python高手之路python处理excel文件(方法汇总)

    用python来自动生成excel数据文件。python处理excel文件主要是第三方模块库xlrd、xlwt、xluntils和pyExcelerator,除此之外,python处理excel还可以用win32com和openpyxl模块
    2016-01-01

最新评论