Django这段代码中的save命令在哪里?

时间:2012-12-26 23:59:27

标签: python django

我试图在我的计算机上运行此示例但是当我重新启动python时,令人惊讶的是,创建的轮询将保存到数据库而没有可见的保存语句。

以下是代码:

>>> from polls.models import Poll, Choice
>>> Poll.objects.all()[0].choice_set.create(choice='Not much', votes=0)
<Choice: Not much>

所以我想知道哪些语句保存了隐含的指令?因为如果我像这样创建它,它将无法在重新启动后继续存在。

>>> c = Choice(choice='Not much3', votes=0)
>>> c.poll_id = 1

我正在创建一个选项,我将外键poll_id分配给第一个轮询。我知道这不应该持久,因为我没有保存。这是第一个欺骗我的人,我假设如果我在关联的集合中创建它,它也会自动保存,不仅给它正确的外国id。

我也是python的新手,基于我之前在这个问题上的经验,语义似乎有点松散。我希望第一个代码只分配正确的外部id而不是将它保存到数据库中。

1 个答案:

答案 0 :(得分:1)

在QuerySet上使用create()方法将自动保存对象,如documentation中所指定。

您可以将其视为SQL INSERT语句。