开发者

Django批量覆盖更新实现示例

目录
  • 批量处理用户上传的数据
    • psqlextra 插件实现

批量处理用户上传的数据

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

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

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

这时候,有三种方式.

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

前两种比较好实现.

psqlextra 插件实现

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

例如:

from psqlextra.managephpr 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'], www.devze.comConflictAction.UPDATE
                           ).bulk_insert(
                           [
                           dict(stu编程客栈dent=1,date='2021-02-11'),
                           dict(student=2,date='2021-03-11'),
                           ]
                           )

以上就是Django批量覆盖更新实现示例的详细内容,更多关于Django批量覆盖更新的资料请关注编程客栈(www.devze.com)其它相关文章!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜