Python Django:键(slug)=(*)已存在
我对Django和python非常陌生,我想了解更多关于如何填充我的Postgres数据库的信息 这是我当前的模型:models.pyPython Django:键(slug)=(*)已存在,python,django,Python,Django,我对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):
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()将显示一个错误,但我在上面的代码中遇到了错误。“unique=True”是否会导致错误?你怎么解决这个问题
跟进
我的问题比我想象的要简单。我能够运行
psql
交互式终端并查看我的数据填充情况。我无法在管理员网站上看到它,因为我错过了在admin.py上注册模型的机会。当您提供unique=True
时,该字段在整个表中都是唯一的。因此,当您尝试添加已在DB中的数据时,它将引发错误。有关更多详细信息,请参见此你对技能的内容是什么?“技能”:[{“名称”:“系统工程”},{“名称”:“消费电子”},{“名称”:“产品开发”},…]你能提供你的错误的全部回溯吗?这是我的全部感谢!我的问题是数据尚未添加,但它会将数据识别为重复数据。我尝试过执行try
&,除了
,尽管它从未执行过对象。created您确定它从未对数据库执行过吗<代码>对象。创建()
始终创建实例。如果它真的不存在,你需要在数据库中检查它。我查看了数据库,现在看到了这些对象。!