我尝试测试Django表单和小部件,但返回的是false而不是true。测试看起来不错,但不确定。我已经添加了测试表单,兴趣表单和播放器类
eval
答案 0 :(得分:0)
您的代码有两个问题:
Player.interests
是ManyToManyField
。这意味着表单期望数据是所选Subject
的主键列表-传递字符串值将不起作用。您必须传递Subject
个对象的整数ID。
CheckboxSelectMultiple
允许选择多个对象,这意味着您必须传递列表,而不是单个值。
所以您需要执行以下操作:
def test_player_interests_fail(self):
# If you haven't already, you need to create a Subject
# I don't know how your Subject model is defined, but something like this
s = Subject.objects.create(name='Sport')
form = PlayerInterestsForm(data={'interests': [s.pk]})
self.assertEqual(form.is_valid(), True)