Django多选表单 - TypeError:int()参数必须是字符串或数字,而不是'list'

Dar*_*ech 2 django django-forms

嗨,我有一个这样的表格:

class PartnerProductsForm(forms.Form):
    product = forms.ModelChoiceField(
        queryset=Product.objects.all(),
        widget=forms.CheckboxSelectMultiple(
            attrs={"checked": ""}
        ),
        empty_label=None,
    )
Run Code Online (Sandbox Code Playgroud)

我的意见:

...
product_form = PartnerProductsForm(request.POST or None)
    if product_form.is_valid():
        # do stuff
Run Code Online (Sandbox Code Playgroud)

但是当我提交时,我收到以下错误:

TypeError: int() argument must be a string or a number, not 'list'
Run Code Online (Sandbox Code Playgroud)

似乎表单验证期望一个int,但当然我将重新调整已检查选项的列表.我该怎么处理这件事?

任何帮助非常感谢.

oro*_*aki 11

您正在寻找的表单字段是ModelMultipleChoiceField,而不是ModelChoiceField.

  • 哈!`face.palm()` (3认同)