我在django测试中有以下代码:
stockitem_retailer = StockItem.objects.filter(retailer=test_retailer).first()
test_subcategory = SubCategory.objects.create(category=test_category, name="outdoors")
stockitem_retailer.product.subcategory = test_subcategory
stockitem_retailer.save()
pdb.set_trace()
self.assertTrue(StockItem.objects.filter(product__subcategory=test_subcategory, retailer=test_retailer).exists())上面的代码使用retailer=test_retailer获取一个StockItem对象,然后id将创建的子类别“户外”添加到stockitem.product.subcategory关系中。那么为什么测试不能通过呢?
这是我从pdb得到的
(Pdb) test_subcategory
<SubCategory: outdoors>
(Pdb) test_retailer
<Retailer: mi-super>
(Pdb) stockitem_retailer.product.subcategory
<SubCategory: outdoors>
(Pdb) stockitem_retailer.retailer
<Retailer: mi-super>
(Pdb) self.assertTrue(StockItem.objects.filter(product__subcategory=test_subcategory, retailer=test_retailer).exists())
*** AssertionError: False is not true我已经看了这段代码好几个小时了,我找不到这个bug。请帮帮忙。
发布于 2017-03-04 08:29:32
您在stockitem_retailer.product上设置了test_subcategory,但是您从未保存过stockitem_retailer.product,而只是保存了stockitem_retailer。
只需添加stockitem_retailer.product.save()即可保存产品。
https://stackoverflow.com/questions/42589289
复制相似问题