我有一个ModelForm
包含一些ForeignKey
,比如User对象,但它可以是任何其他模型.我有一个单元测试类用于此表单,但是当我尝试传递数据时,我收到Select a valid choice. That choice is not one of the available choices
错误.测试看起来像这样:
class Monkey(Model): user = models.ForeignKey(User) ... class MyForm(ModelForm): class Meta: model = Monkey fields = ['user', ...] def test_my_form_with_a_user(self): ... data = {'user': User.objects.get(pk=1), ... } # Nope. data = {'user': [u'1'], ... } # Nope. data = {'user': [u'JaneDoe'], ... } # Nope. form = MyForm(data, ...) self.assertTrue(form.is_valid(), form.errors) ...
我已经尝试了任何数量的排列,user
但我得到了同样的错误.
我错过了什么?
您应该能够使用以下内容为测试中的用户字段分配值:
def test_my_form_with_a_user(self): user_pk = User.objects.get(pk=1).pk data = {'user': user_pk} ...