Django插入错误导致重复出现错误

时间:2018-12-07 07:34:41

标签: python django

我正在尝试向Django创建的表中添加一些数据。

这是我的代码:

class Prefixe(models.Model):
    remote_as = models.CharField(max_length=250)
    prefix_list = models.CharField(max_length=250, unique=True)


def insert():
    p = Prefixe(remote_as='Apress', prefix_list='Berkeley')
    p.save()

我正在使用ORM创建记录,但失败并出现“重复”异常(请参见prefix_list定义中的unique选项)。

但是有一种方法可以避免这种异常,如果我使用特定的PG选项将插入作为原始SQL插入

INSERT INTO "peer_table" ("remote_as","prefix_list")
VALUES('{}','{}')
ON CONFLICT DO NOTHING

通过ORM工作时,是否可以避免由重复导致的异常?

1 个答案:

答案 0 :(得分:0)

使用方法blogs可以使您的代码受益:

def insert(remote_as, prefix_list):
    p, was_created = Prefixe.objects.get_or_create(
        remote_as=remote_as, prefix_list=prefix_list)

    if was_create:
        print('a new instance was created.')
    else:
        print('the instance already exists.')