2016-08-26 2 views
3

У меня есть формаДжанго для ModelChoiceField формы с CheckboxSelectMultiple виджетом

class TypesForm(forms.Form): 
    ....  
    types = forms.ModelChoiceField(
    label='Types', 
    queryset=models.Type.objects.all(), 
    widget=forms.CheckboxSelectMultiple) 
    ... 

Как написать модульный тест для этой формы, когда я хочу, чтобы проверить несколько ящиков выбраны?

Для проверки один полевых работ следующие:

form = forms.TypesForm({'types': 1}) 
self.assertTrue(form.is_valid()) 

Но все, что я пытался установить два выбранных флажков, это приводит к ошибкам:

{'types': [u'Select a valid choice. That choice is not one of the available choices.']} 

Я пытался, но это не работает. Например. :

form = forms.TypesForm({'types': [1, 2]}) 

form = forms.TypesForm({'types': (1, 2)}) 

и другие варианты ..

Для forms.ModelForm список [1, 2] работает, так что должно быть способом.

ответ

2

ModelChoiceField позволяет выбрать одиночный объект. Если вы хотите разрешить выбор нескольких объектов, используйте ModelMultipleChoiceField.

В тестовом модуле, передать список идентификаторов для поля, например:

form = forms.TypesForm({'types': [1, 2]}) 
Смежные вопросы