我是Django和python的新手,我想了解更多有关如何填充Postgres数据库的信息。
这是我目前的型号:models.py
from django.template.defaultfilters import slugify
class Skill(models.Model):
name = models.TextField()
slug = models.TextField(unique = True)
def __unicode__(self):
return "%s" % self.name
和我的观点:views.py
r = r.json()
try:
Skills = r['data']['skills']
except:
pass
for skill in Skills:
skill = Skill.objects.create(name=skill['name'],slug=slugify(skill['name']))
我收到错误: 异常类型:IntegrityError
详细信息:Key(slug)=(系统工程)已经存在。
我一直在阅读similar post,但仍然无法解决我的问题。当对象已存在于数据库中时,objects.create()将显示错误,但我收到上述代码的错误。可以" unique = True"导致错误?你怎么解决这个问题?
跟进
我的问题比我想象的要简单。我能够运行psql
交互式终端并查看我的数据填充。我无法在管理网站上看到它,因为我错过了在admin.py上注册模型
答案 0 :(得分:0)
当您提供unique=True
时,该字段在整个表格中都是唯一的。因此,当您尝试添加已存在于DB中的数据时,将引发错误。有关详细信息,请参阅此official doc