Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 复选框如果选中或未选中,则选择多个Django提取_Python_Django - Fatal编程技术网

Python 复选框如果选中或未选中,则选择多个Django提取

Python 复选框如果选中或未选中,则选择多个Django提取,python,django,Python,Django,我被卡在“复选框SelectMultiple”上,我不知道如何提取用户选择的内容和未选择的内容 例如,my forms.py: from django import forms FAVORITE_COLORS_CHOICES = ( ('blue', 'Blue'), ('green', 'Green'), ('black', 'Black'), ) class MyForm(forms.Form): favorite_colors = forms.Mult

我被卡在“复选框SelectMultiple”上,我不知道如何提取用户选择的内容和未选择的内容

例如,my forms.py:

from django import forms

FAVORITE_COLORS_CHOICES = (
    ('blue', 'Blue'),
    ('green', 'Green'),
    ('black', 'Black'),
)


class MyForm(forms.Form):
    favorite_colors = forms.MultipleChoiceField(
        required=False,
        widget=forms.CheckboxSelectMultiple,
        choices=FAVORITE_COLORS_CHOICES,
    )
my views.py:

from accounts.forms import MyForm

def my_view(request):
    form = MyForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            try:
                if request.POST["favorite_colors"]:
                    print(request.POST["favorite_colors"])
            except:
                print(request.POST["favorite_colors"])
    return render(request, 'accounts/form.html', {'form': form})

目前,它给了我最后一个选中的复选框,我如何检查是否选中了特定的复选框?(例如'if request.POST[“favorite_colors.blue”]:print('blue')或类似的内容)。

尝试类似的方法吗

def my_view(request):
    form = MyForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            print("Selected: " + form.cleaned_data['favorite_colors'])
        else:
            print("error")

    return render(request, 'accounts/form.html', {'form': form})

太棒了,真管用!(只需将其从列表修改为str)实际清理的_数据的作用是什么?它从表单对象中获取信息并存储在列表中?在这里了解更多信息是的,它实际上存储为字典。然后您可以通过钥匙访问它们。