我正在创建一些django测试,并且只要新模型被创建或更新,我就会将数据发布到某个URL,并且我正在使用djnago信号在models.py文件中调度它们。
现在,当我从shell创建新对象或修改现有对象时,我会使用指定数据获取对目标URL的发布请求,从而完全正常工作。
但是,当我在django测试中编写用于创建或更新模型的语句时,它没有做任何事情,它只是在别名数据库中创建对象,但实际上并没有向目标URL发送任何信号
以下是我的django测试的样子:
class ProductEndpointTests(APITestCase):
def test_product_create(self):
productobject = Product.objects.create(title="pr1",
description="good deal",
price=19.99)
productobject.save()
Models.py:
class Product(models.Model):
title = models.CharField(max_length=120)
description = models.TextField(blank=True, null=True)
price = models.DecimalField(decimal_places=2, max_digits=20)
def product_post_save(sender, instance, created, *args, **kwargs):
product = instance
# Post data to given url
post_save.connect(product_post_save, sender=Product)
我有什么遗漏或者我需要在django测试中添加任何内容以便从测试中发送信号吗?
对此有任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
productobject = Product.objects.create(title="pr1",
description="good deal",
price=19.99)
alertobject.save()
productobject.save()
在哪里?我看到你在呼唤alertobject.save()
。
使用productobject.save()
,它应该可以正常工作。