Почему моя ModelForm с виджетом CheckboxSelectMultiple не проходит валидацию?
У меня есть SelectCategoryForm
, который рендерит кверисет Model Category
, хранящий различные категории. Модель UserCategoryFilter
хранит фильтр, выбранный и сохраненный пользователем.
# Form
class SelectCategoryForm(forms.Form):
choices = forms.ModelMultipleChoiceField(queryset=Category.objects.all(),
widget=forms.CheckboxSelectMultiple)
# Models
class Category(models.Model):
poller_category = models.CharField(max_length=30)
category_color = models.CharField(max_length=15, blank=True)
def __str__(self):
return str(self.poller_category)
class UserCategoryFilter(models.Model):
user = models.ForeignKey(Account, on_delete=models.CASCADE)
categories_selected = models.ForeignKey(Category, on_delete=models.CASCADE)
# View
@require_POST
def save_category_filter(request):
# User logged in?
if request.user.is_authenticated:
# Get the form instance
filter_form = SelectCategoryForm(request.POST)
# Form validation
if filter_form.is_valid():
# Template
<!-- Filter form -->
<div class="filter-form-wrapper">
<form method="post" action="/category-filter/">
{% csrf_token %}
<div id="form-wrapper">
<ul>
{% for item in filter_form %}
{{ item }}
{% endfor %}
</ul>
<button class="save-button" type="submit">Save</button>
</div>
</form>
</div>
Теперь, когда я выбираю некоторые категории в шаблоне и отправляю, представление валидирует форму как invalid
.