UNIQUE 约束失败

2023-12-29

我正在使用 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

Adding Category model:

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

你收到错误是因为unique = True in name = models.CharField(max_length=128, unique=True)意味着 Django 将引发约束错误UNIQUE 约束失败如果您尝试使用相同的内容保存新实例name价值;违反唯一约束

get_or_create不起作用,因为views=views这可能会有所不同,尽管name equals name

当你create or get您的实例,您可以仅使用name field

def add_cat(name, views):
    c = Category.objects.get_or_create(name=name, views=views)[0]
    c.views=views
    c.save()
    return c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UNIQUE 约束失败 的相关文章

随机推荐

  • 使用 wkhtmltopdf 从 HTML 生成 Google 网络字体和 PDF

    我在用wkhtml转pdf http code google com p wkhtmltopdf 将 HTML 文件转换为 PDF 格式 它给出了令人惊讶的好结果 渲染 PDF 的效果与 WebKit 完全一样 我在用谷歌网络字体 http
  • Spark-Shell中进度条上的数字是什么意思?

    在我的 Spark Shell 中 当我执行函数时 如下所示的条目意味着什么 Stage7 gt 14174 5 62500 你得到的是一个Console Progress Bar Stage 7 显示您现在所处的阶段 并且 14174 5
  • 为什么 std::forward_list 的拼接整个列表或范围是线性的?

    将一个范围从一个列表拼接到另一个列表可以在恒定时间内完成 但代价是size 的复杂度是线性的 C 11 改变了这种情况std list通过要求size 为常数时间 例如 这破坏了 gcc 的实现 请参阅 C 0x std list size
  • matplotlib:设置图形的宽度或高度而不改变纵横比

    我想选择图形的宽度 同时仍然让 matplotlib 选择它认为合适的纵横比 我知道的每种改变图形大小的方法都需要一个 宽度 高度 元组 这会强制一定的纵横比 有没有办法只指定宽度 或仅指定高度 并允许 matplotlib 选择合适的纵横
  • 如何使 Windows 8 桌面应用程序显示在 Metro UI 中(如任务管理器)?

    最近我注意到Windows 8任务管理器可以在Metro UI中显示 要求是您必须将其设置为始终位于顶部 通过 选项 gt 始终位于顶部 菜单 设置总在最前面后 您可以在Desktop中启动任务管理器 切换到Metro 可以看到任务管理器显
  • 传递对象时防止在 PureComponent 上重新渲染

    使用时纯组件 https reactjs org docs react api html reactpurecomponent与功能组件相比 您的优势在于 当父级更新时 组件并不总是呈现 它实际上仅在组件属性发生更改时才会渲染 在本例中仅当
  • ReactJS:测试包含组件的组件

    我使用 Jest 来测试我的 React 组件 但是 我不知道 或没有看到任何内容 如何测试将方法传递 作为 prop 到子组件的组件 例如 我有 Form MemberList Member FormButton 代码中类似的东西 For
  • 尽管在 pyodbc.dataSources() 中列出,但未找到驱动程序

    我尝试使用 pyodbc 访问 MS Access mdb 数据库 我已经设置了 ODBC 驱动程序 该驱动程序已注册到我的 DSN 我可以在pyodbc dataSources sources pyodbc dataSources dsn
  • 量角器页面对象继承

    鉴于我正在利用页面对象模式构建我的 angularjs Protractor e2e 测试套件 我尽可能合理地将页面对象代码分离在不同的文件中 启用页面对象继承的好方法是什么 javascript经典继承 基于 Object create
  • Express GET 路由不适用于参数

    我是 Express 和 Mongoose 的新手 我目前正在开发我的第一个项目 这不是教程 我遇到了问题 我有多个路由 它们在 index js 中定义如下 app use api client require routes client
  • 如何从字符串中读取 NSDate?

    我有带有日期的字符串 并且想将它们解析为 NSDate 对象 有没有办法做到这一点 我看过 NSDate 和 NSScanner 但没有看到任何可以从字符串中读取它的东西 在cocoa sdk中 通常是 如果您想要一个日期并且有一个字符串
  • MVC 场景中的 Javascript 事件与回调

    我正在尝试找出一种很好的方法来拥有视图和控制器并最大限度地减少它们之间的联系 除了一个事件有多个订阅者之外 像这样的 js 代码之间还有什么主要区别吗 var customers get function callback get cust
  • 使用循环时如何使 makefile 错误退出?

    如果我有以下 bash 命令 for i in x do ls i done echo OK 执行 ls 然后执行 ls x 失败 缺少 x 并且不打印 OK If for i in x do ls i done echo OK 那么即使
  • Google Cloud Platform:从命令行登录 GCP

    我确信这会很简单 但找不到任何文档或解决方案 我正在尝试使用 gcloud 编写一个脚本来在我的 GCP 实例中执行一些操作 是否可以仅通过命令行使用 gcloud 登录 身份验证 Thanks 这里有几个选择 取决于您到底想做什么 第一个
  • 原则 2 - 从实体外部禁用 PrePersist

    我正在尝试从 Doctrine 2 中的实体外部禁用实体事件 每次我们将新记录插入表中时 都需要运行很少的文件操作 这些操作已在带有 prePersist 注释的方法中实现 但是 我还需要运行一些数据装置并跳过文件操作部分作为测试的一部分
  • 强制轨迹栏值为十倍

    我用 C 在 Winform 项目上添加了一个轨迹栏 mySlider Minimum 0 mySlider Maximum 200 mySlider Value 30 mySlider SmallChange 10 mySlider La
  • Java applet 清单 - 允许所有 Caller-Allowable-Codebase

    从 Java 7u45 开始 如果网页尝试通过 javascript 与小程序交互 并且该页面未在清单的 Caller Allowable Codebase 属性中列出 则小程序将显示警告消息 即使使用受信任的证书进行签名 有关此更改的发行
  • 是否抛出 ConcurrentModificationException 取决于系统

    我正在使用 Iterator 编写一段代码 当我在 Windows 上从 IDE 运行该程序时 在 a 行收到 ConcurrentModificationException LinkedList ll new LinkedList Ite
  • 是否应该在编写代码之前先编写单元测试?

    我知道测试驱动开发的定义原则之一是首先编写单元测试 然后编写代码来通过这些单元测试 但是有必要这样做吗 我发现 在编写之前 我常常不知道自己在测试什么 主要是因为我过去从事的几个项目更多地是从概念验证演变而来 而不是设计出来的 我之前曾尝试
  • UNIQUE 约束失败

    我正在使用 Django 进行 Tango 但无法解决这个练习 我明白了django db utils IntegrityError UNIQUE constraint failed rango category name错误 这是我尝试实