我想在Django中編寫我的第一個單元測試。這是工作人員登記表格。 表單的Staff模型與UserProfile(AUTH_PROFILE_MODULE)具有OneToOne關係。 UserProfile與django.contrib.auth.models.User具有OneToOne關係。Django:從模型實例創建綁定表單
我使用https://github.com/dnerdy/factory_boy來爲員工創造模型測試模型實例。這個想法是使用一個StaffFactory,所以我可以輕鬆創建測試模型實例。要創建綁定表單,我需要將它傳遞給數據字典。我認爲使用django.forms.models.model_to_dict將測試表單時我的模型實例轉換爲數據字典會很方便。現在
,我的問題是:model_to_dict不經過我的員工模型(Staff-> UserProfile->用戶)的外鍵。這意味着表單保持無效,因爲用戶的電子郵件等必填字段在表單數據中仍然缺失。
目前我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)
有沒有辦法在一個字典,其中外鍵是由模型實例使用重新序列通過?
upvote for clear sourcing for model_to_dict()。這讓我今天節省了一個小時。 – BobHy 2015-11-28 01:44:07