【发布时间】:2018-12-07 07:34:41
【问题描述】:
我正在尝试将一些数据添加到用 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 工作时,我能否避免这种由重复引起的异常?
【问题讨论】:
-
如果出现错误,我认为 Python 解决方案也不会接受重复项,对吗?您只是缺少错误处理,这取决于您未提供详细信息的错误类型。一种可能的方法,异常处理,是通过 try/except。
-
在 Python 中有效!因为我使用 postgres(ON CONFLICT DO NOTHING)
-
那么你问题的最后一行是什么意思?