我有一些静态表,我正在使用管理命令这样初始化
Suit(name="Clubs").save()
Suit(name="Hearts").save()
Suit(name="Diamonds").save()
Suit(name="Spades").save()
我希望能够随时重新运行它,以防有新值,但我想避免插入重复项。 数据库有一个唯一的约束,所以如果有重复,我会得到一个错误。 除了将每个单独的语句包装在 try/catch 中之外,有没有一种方法可以运行多个这样的语句并忽略约束违规并继续?
我不会调用
.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")