如何忽略在 Django 中插入重复项?

问题描述 投票:0回答:1

我有一些静态表,我正在使用管理命令这样初始化

Suit(name="Clubs").save()
Suit(name="Hearts").save()
Suit(name="Diamonds").save()
Suit(name="Spades").save()

我希望能够随时重新运行它,以防有新值,但我想避免插入重复项。 数据库有一个唯一的约束,所以如果有重复,我会得到一个错误。 除了将每个单独的语句包装在 try/catch 中之外,有没有一种方法可以运行多个这样的语句并忽略约束违规并继续?

python django unique-constraint
1个回答
0
投票

我不会调用

.save()
,而是按照
这里
的记录,调用 .get_or_create()

Suit.objects.get_or_create(name="Clubs")
Suit.objects.get_or_create(name="Hearts")
Suit.objects.get_or_create(name="Diamonds")
Suit.objects.get_or_create(name="Spades")
© www.soinside.com 2019 - 2024. All rights reserved.