2012-12-26 61 views
0

我試圖在我的電腦上運行這個例子,但是當我重新啓動python時,令人驚訝的是創建的民意調查沒有可見的保存語句被保存到數據庫。Django這段代碼中的save命令在哪裏?

下面是代碼:

>>> 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的新手,基於我以前在這個問題上的經驗,語義看起來有點鬆散。我希望第一個代碼只分配正確的外部標識符,而不是將其保存到數據庫中。

回答

1

在QuerySet上使用create()方法將自動保存對象,如documentation中所指定的那樣。

你可以認爲它是一個有效的SQL INSERT語句。

+0

是的,我也在你的回答後15秒看到它:) – EralpB