我的一个视图需要将多个值插入到数据库中。我曾认为,如果我使用唯一的vendor_name
设置我的模型:
class Page(models.Model):
vendor_name = models.CharField(max_length=128, unique=True)
website = models.CharField(max_length=128)
food_type = models.CharField(max_length=128)
img_url = models.CharField(max_length=128)
如果我这样做:
for vendor in vendors:
c = Page(vendor_name=vendor["name"],
website=vendor["link"],
food_type=vendor["type"],
img_url=vendor["imageurl"])
c.save()
重复出现的条目将被跳过,数据库中只会有一份副本。至少这是我从这里理解的。我是否需要添加一个if语句来检查每个条目是否已经在数据库中,如果没有则插入,否则跳过?或者我漏掉了什么?唯一约束的目的是什么?它只是在出现重复时抛出错误吗?我能否利用这一点呢?
我得到的错误是:
Exception Value: duplicate key value violates unique constraint...