1 kingofvir OP 有 model A,model B,A.b = ForeignKey(B), 如优雅地设置 A.author = A.b.name. |
2 kingofvir OP 自顶 |
![]() | 3 mayorbryant 2019-01-25 10:07:50 +08:00 难道 A.author = A.b.name 就不优雅了吗 |
4 kingofvir OP @mayorbryant 主要是为了数据更新,这样几万条数据更新需要执行几万个 sql |
![]() | 5 banxi1988 2019-02-17 22:15:00 +08:00 根据我的理解给出一个使用纯 SQL 的解法,你可以自行翻译成 Django ORM 的写法 针对如下表结构: ```sql CREATE TABLE `author` ( `id` INTEGER, `name` TEXT, PRIMARY KEY(`id`) ); CREATE TABLE `book` ( `id` INTEGER, `name` TEXT NOT NULL, `author_id` INTEGER, `author_name` TEXT, PRIMARY KEY(`id`) ); ```` `book.author_name` 是后面加的,要填充其关联的 author 的名称可以使用如下 SQL 语句更新。 ```sql update book set author_name = (select name from author where id = author_id) ``` 经过我使用 SQLite 测试是 OK 的。 > Query executed successfully: update book set author_name = (select name from author where id = author_id) (took 0ms, 3 rows affected) |