django:键(slug)=(*)已经存在



我是Django和Python的新手,我想了解有关如何填充Postgres数据库的更多信息。

这是我当前的模型:model.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

细节:键(slug(=(系统工程(已经存在。

我一直在阅读类似的帖子,尽管仍然无法解决我的问题。当对象已经存在数据库中时,objects.create((将显示错误,但是我在上面的代码中遇到了错误。"唯一= true"会导致错误吗?以及如何解决此问题?

跟进

我的问题比我想象的要简单。我能够运行psql交互式终端并查看我的数据填充。我无法在管理站点上看到它,因为我错过了在Admin.py.py

上注册模型

提供unique=True时,该字段在整个表中都是唯一的。因此,当您尝试添加DB中已经存在的数据时,它将引起错误。有关更多详细信息,请参见此官方文档

最新更新