我正在尝试向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工作时,是否可以避免由重复导致的异常?
答案 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.')