2016-07-21 11 views
1

Проблема в том, что у меня есть несколько полей множественного выбора в моем классе формы, и они не могут пройти is_valid метод в view.py.Django Проверка множественного поля выбора

Forms.py

class SearchForm(forms.Form) : 
LIMIT_OPTIONS = (('5', '5'), 
       ('10', '10'), 
       ('15', '15'), 
       ('20', '20')) 
keyword = forms.CharField(max_length=50)  
limit = forms.MultipleChoiceField(widget=forms.Select, choices=LIMIT_OPTIONS) 

View.py

class IndexView(View) : 
form_class = SearchForm 
template_name = 'web/index.html' 
def get(self, request) : 
    form = self.form_class(None) 
    return render(request, self.template_name, {'form':form}) 

def post (self, request) : 
    form = self.form_class(request.POST) 
    if form.is_valid(): 
     url = '****' 

     keyword = form.cleaned_data['keyword'] 
     limit = form.cleaned_data['limit'] 

     userupload = {'keyword': keyword, 'limit': limit} 

     response = requests.post(url, json = userupload) 

     return HttpResponse(response) 
    return HttpResponse('<h1>Error</h1>') 

, если я изменю MultipleChoiceField к CharField чем все это хорошо ...

Я смотрел в Интернет и не удалось найти отклик ...

Примечание: Я не использую любую базу данных или модели (только в том случае, если это важно)

Спасибо за вашу помощь.

ответ

0

Так что, если вы хотите иметь выпадающий Select Field в вас forms.py и Widget - Select не проходит проверку (is_valid метода)

class SearchForm(forms.Form) : 
LIMIT_OPTIONS = (('5', '5'), 
       ('10', '10'), 
       ('15', '15'), 
       ('20', '20')) 
    limit = forms.MultipleChoiceField(widget=forms.Select, choices=LIMIT_OPTIONS) 

Просто изменить его общую CharField и добавить widget=forms.Select(choices=LIMIT_OPTIONS)

Пример:

class SearchForm(forms.Form) : 
LIMIT_OPTIONS = (('5', '5'), 
       ('10', '10'), 
       ('15', '15'), 
       ('20', '20')) 
    limit = forms.CharField(widget=forms.Select(choices=LIMIT_OPTIONS)) 
1

Виджет по умолчанию для MultipleChoiceField: SelectMultiple.

Аналогично выбрать, но позволяет множественный выбор: ...

Вы изменили, что в вашей форме forms.Select. Отсюда и результат.

+0

год, но есть и другая проблема, если я использую SelectMultiple, он меняет выпадающее поле в поле «Список» ... –

+0

Итак, какое поле HTML вы хотите? – e4c5

+0

Выпадающий ящик - лучший выбор для меня =) –

Смежные вопросы