【发布时间】:2018-11-17 17:36:49
【问题描述】:
我正在使用 Django 进行 Tango,但我无法解决这个练习。
我收到django.db.utils.IntegrityError: UNIQUE constraint failed: rango_category.name 错误。这是在我尝试将views 属性实现到Category 对象之后。这是我的数据库填充脚本的摘录。我想也许我应该makemigrations 然后migrate 来更新数据库的模型。然而,这并没有帮助。
cats = {
'Python' : {'pages': python_pages, 'views':128},
'Django': {'pages': django_pages, 'views':128},
"Other Frameworks": {'pages':other_pages, 'views':128},
}
for cat, cat_data in cats.items():
c = add_cat(cat, cat_data['views'])
for p in cat_data["pages"]:
add_page(c, p['title'], p['url'])
for c in Category.objects.all():
for p in Page.objects.filter(category=c):
print("- {0} - {1}".format(str(c), str(p)))
def add_cat(name, views):
c = Category.objects.get_or_create(name=name, views=views)[0]
c.views=views
c.save()
return c
添加Category模型:
class Category(models.Model):
name = models.CharField(max_length=128, unique=True)
views = models.IntegerField(default=0)
class Meta:
verbose_name_plural = 'Categories'
def __str__(self):
return self.name
【问题讨论】:
-
我认为这是因为
Category中的name字段具有unique=True参数@显示您的模型Category
标签: django