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