我正在尝试在django测试用例期间加载一个fixture,但是m2m_changed
信号启动并且它发出错误(信号检查外键是否处于相关状态)。
此answer建议使用disable_for_loaddata
装饰器,但m2m_changed
没有raw
field。
我试过了:
class DaysTests(APITestCase):
fixtures = ['initial_data.json'] # fixture is loaded before disabling m2m_changed
def setUp(self):
m2m_changed.disconnect(days_handler, sender=Foo.days.through)
def test_api(self):
# test logic.
在禁用m2m_changed
信号之前加载初始数据。
断开/禁用m2m_changed
信号的正确方法是什么?
答案 0 :(得分:2)
您应该尝试禁用此信号,而不是在setUp方法中,而是在setUpClass中,因为它是在加载灯具之前执行的。这是一种使用它的可能方式:
@classmethod
def setUpClass(cls):
super(DaysTests, cls).setUpClass()
m2m_changed.disconnect(...)