我想编写一个单元测试来检查ManyToMany
字段的初始值。
这是我到目前为止所拥有的:
def test_field_initial(self):
instance = MyModel.objects.create(name='myinstance')
m2m_obj = OtherModel.objects.create(name='mym2mrel')
instance.m2mfield.add(m2m_obj)
instance.save()
self.assertQuerysetEqual(
instance.m2mfield.all(), [repr(m2m_obj_1)], ordered=False)
form = MyForm(instance=instance)
self.assertEqual([repr(m2m_obj)], list(form.fields['m2mfield'].initial))
为了清楚起见,我没有显示所有示例模型;这只是一般的ManyToMany
字段关系。
我遇到的问题是form.fields['m2mfield'].initial
导致None
,因此第二个断言失败。
当第一个断言通过时,M2M关系就很明显。该表单还可以正确呈现正确的HTML。
为什么field.initial
显示None
,如何正确测试期望值?