Py学习  »  Django

如何仅使用外键值更新Django模型关系

James Parker • 4 年前 • 2021 次点击  

我正在寻找一种在Django中通过只传递外键值而不是关系中引用的模型来更新模型上的关系的方法。

我知道Django想让我这么做

publisher = Publisher.objects.get(id=2)
book = Book.objects.get(id=1)
book.update(publisher=publisher)

但我想用publishers PK来更新发布者,这样就更符合这一点了。

book = Book.objects.get(id=1)
book.update(publisher=2)

我有大量的数据需要更新,我不一定要在“书”上提到每个需要更新的领域的模型。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133330
文章 [ 1 ]  |  最新文章 4 年前
Willem Van Onsem
Reply   •   1 楼
Willem Van Onsem    4 年前

你可以用 .filter(…)  [Django-doc] 在这里和你一起工作 publisher_id :

Book.objects.filter(id=1).update(publisher_id=2)

这将阻止首次获取 Book 对象使用不同的查询,因此通常情况下,这将通过对数据库的单个查询运行。