栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

django.db.utils.IntegrityError:(1062,键“ slug”的“重复条目””)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django.db.utils.IntegrityError:(1062,键“ slug”的“重复条目””)

让我们逐步分析它:

  1. 您要添加
    slug
    带有的字段
    unique = True
    ,这意味着:每个记录必须具有不同的值,而在同一记录中不能有两个记录具有相同的值
    slug
  2. 您正在创建迁移:django要求您提供数据库中已经存在的字段的默认值,因此您提供了“(空字符串)作为该值。
  3. 现在,django正在尝试迁移您的数据库。在数据库中,我们至少有2条记录
  4. 迁移第一个记录,用空字符串填充子弹列。很好,因为没有其他记录在
    slug
    字段中有空字符串
  5. 迁移第二条记录,用空字符串填充子弹列。失败,因为第一个记录在
    slug
    字段中已经有空字符串。引发异常,迁移中止。

这就是您的迁移失败的原因。您要做的就是编辑迁移,复制

migrations.AlterField
操作两次,在第一个操作中删除unique =
True。在这
migrations.RunPython
两次操作之间,您应该放入operation并在其中提供2个参数:
generate_slugs
migrations.RunPython.noop

现在,您必须在迁移函数内部创建BEFORE迁移类之前,将该函数命名

generate_slugs
。函数应带有2个参数:
apps
schema_editor
。在您的函数中放在第一行:

Category = apps.get_model('your_app_name', 'Category')

现在用于

Category.objects.all()
循环所有记录并为每个记录提供唯一的记录。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626589.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号