我有一个模型,让我们说一下:
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>