我正在尝试在 Django 中编写我的第一个单元测试。这是一个员工登记表。表单的 Staff 模型与 UserProfile (AUTH_PROFILE_MODULE) 具有 OneToOne 关系。UserProfile 与 django.contrib.auth.models.User 具有 OneToOne 关系。
我正在使用https://github.com/dnerdy/factory_boy为人员模型创建一个测试模型实例。这个想法是使用 StaffFactory,这样我就可以轻松地创建测试模型实例。要创建绑定表单,我需要将数据字典传递给它。我认为在测试表单时只使用django.forms.models.model_to_dict将我的模型实例转换为数据字典会很方便。
现在,我的问题是:model_to_dict 没有遍历我的 Staff 模型(Staff->UserProfile->User)的外键。这意味着表单保持无效,因为表单数据中仍然缺少用户电子邮件等必填字段。
目前我的 StaffRegistrationFormTest 看起来像:
class StaffRegistrationFormTest(unittest.TestCase):
def test_success(self):
staff1 = StaffFactory()
form = StaffRegistrationForm(model_to_dict(staff1))
# print jsonpickle.encode(model_to_dict(staff1))
self.assertTrue(form.is_valid(), form.errors)
有没有办法传入一个字典,通过重用模型实例来序列化外键?