- 解决方案:django IntegrityError("The row in table '%s' with primary key '%s' has an ""invalid foreign key: %s.%s contains a value '%s' that ""does not have a corresponding value in %s.%s."% (table_name,bad_row[0],table_name,column_name,bad_row[1],referenced_table_name,referenced_column_name,))
报错的原因这是一个Django数据库中外键约束错误。例如,如果外键指向主键表的名称为"referenced_table",则可以执行以下查询如果返回False,就需要手动删除那一条数据。Author表中的"id"字段是主键,而Book表中的"author"字段是外键。这也是默认的 on_delete 行为,不过建议在使用时要慎重,以免误删重要数据。所以选择不同的 on_delete 类型可以满足不同需求。
2023-04-02 16:21:40 - django出现IntegrityError(*tuple(e.args))的解决方案
如果发现 IntegrityError 错误,可以使用 try-except 语句来捕获异常,并在处理异常时进行重试或将错误消息返回给用户等。此外,可以通过在数据模型中添加约束来防止 IntegrityError 的出现,例如在 ForeignKey 字段中添加 on_delete 参数,在 CharField 和 TextField 字段中添加 blank=False 参数等。on_delete参数等等, 都可以有效地防止IntegrityError的发生。总之,在解决IntegrityError的问题时,使用try-except来捕获错误,并在数据模型和数据库层面上设置约束条件是最佳实践。
2023-03-31 14:56:02