如何以Django形式测试ManyToMany字段的初始数据?

时间:2020-07-15 13:58:56

标签: django django-models django-forms django-testing django-tests

我想编写一个单元测试来检查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,如何正确测试期望值?

0 个答案:

没有答案