【发布时间】:2020-05-07 01:31:46
【问题描述】:
我正在使用 Django 3.0 + MariaDB。 我使用“python manage.py inspectdb > models.py”命令从现有数据库创建了一个 models.py。 我现在需要设置外键的选项。 如您所知,在数据库中您可以有多个外键选项:第一个经典是“ON_DELETE”,第二个是“ON_UPDATE”(您甚至可以在 PostgreSQL 中拥有更多选项)。 在 Django 中,只有一个“on_delete”,但没有“on_update”选项,这让我很惊讶。 我在官方文档中没有发现任何关于此的内容。 在一些具有相同问题的旧帖子上,回复都不是结论性的,而是集中在“on_delete”上。 我问的是“ON_UPDATE”选项,没有别的。 那么,这个选项在哪里,或者为什么它没有出现在 Django 的 ORM 中?
【问题讨论】:
-
你想用 on_update 实现什么,但是没有它你在 Django 中不能做
-
好吧,如果您出于任何原因需要更改 id(通常是为了修复错误数据),也可以使用“on_update”选项更新链接数据。我的数据库是这样配置的,而且效果很好。如果没有这个选项,它可能会很费力,特别是有数百万个条目。
标签: python django orm foreign-keys