我有一個模型,我不能挽救我的目標,讓我們這樣說:Django的測試 - 當我使用的查詢集得到它
class Invoice(models.Model):
client_name = models.CharField(max_length=100)
而且我有一個看起來像一個文件:
def foo_1():
for inv in Invoice.objects.all():
inv.client_name = "Joe"
inv.save()
def foo_2(inv):
inv.client_name = "Joe"
inv.save()
發生
我的問題,當我測試:
class FooCase(TestCase):
def test_foo(self):
inv = Invoice("Jack")
print inv.client_name # output Jack, OK
foo_1()
print inv.client_name # output Jack, KO !
print inv.client_name # output Jack, OK
foo_2(inv)
print inv.client_name # output Joe, OK
我不明白,爲什麼在兩個型動物的行爲:(
我添加了一個修改日期來我的模型,並嘗試將其輸出到foo_1
前後循環for
後,save
似乎能正常工作,但很喜歡的對象是不同的...
我不'不知道這是否有幫助,但我也輸出vars(invoice)
test_foo
然後從foo_1()
和最後從foo_2()
。狀態是一樣的test_foo
和foo_2()
(<django.db.models.base.ModelState object at 0x32ca090>
),但不是在foo_1()
(<django.db.models.base.ModelState object at 0x32cc650>
)
它給你什麼錯誤?或者它只是不把它保存到數據庫? – Hoopdady
噢,在你運行inv.save()之前,'inv = Invoice(「Jack」)'也不會在數據庫中,所以它不會受'foo_1()'的影響。我也非常感興趣的是,最終的'inv.client_name'輸出是'Joe',看起來應該是'LOL'。 – Hoopdady
即使在調用foo_1之前保存'inv','inv'也不會受到'foo_1'的影響。 – lanzz