我有一个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
尝试过任意数量的排列,但我遇到同样的错误。
我错过了什么?
答案 0 :(得分:9)
您应该能够使用以下内容为测试中的用户字段指定值:
def test_my_form_with_a_user(self):
user_pk = User.objects.get(pk=1).pk
data = {'user': user_pk}
...