我试图从模板中获取用户的输入,我在Django Auth模型中的组模型中显示模板中的组列表,并期望多个值.

from django.contrib.auth.models import Group

class MyForm(forms.ModelForm):
    
    the_choices = forms.ModelMultipleChoiceField(queryset=Group.objects.all(),
                                                 required=False, 
                                                 widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = Group
        exclude = ['name', 'permissions']

    
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)

views.py

from .forms import MyForm
from django.shortcuts import render
from django.views.generic import View

class see(View):

    def __init__(self):
        pass

    def get(self, request):
        context ={}
        context['form']= MyForm()
        return render(request, "home.html", context)
    
    def post(self, request):
        print(request.POST.get('the_choices'))

        return HttpResponse('Great!')

模板-输入表单图像

控制台中的输出

请参考图2,我希望控制台中有1和2(首选组名),但它只返回2.

推荐答案

如果访问request.POST.get('key')(或request.POST['key']),则只会获得与该键关联的last值.

您可以使用.getlist(…) method [Django-doc]访问所有值:

print(request.POST.getlist('the_choices'))

但通常情况下,您使用表单本身处理数据,因此:

form = MyForm(request.POST, request.FILES)
if form.is_valid():
    print(form.cleaned_data['the_choices'])

这还将清理数据并返回模型对象,而不是它们的主键.

Python相关问答推荐

Python多处理:当我在一个巨大的pandas数据框架上启动许多进程时,程序就会陷入困境

acme错误-Veritas错误:模块收件箱没有属性linear_util'

如何使用matplotlib在Python中使用规范化数据和原始t测试值创建组合热图?

如何根据参数推断对象的返回类型?

更改键盘按钮进入'

Polars:用氨纶的其他部分替换氨纶的部分

导入...从...混乱

将JSON对象转换为Dataframe

如何从列表框中 Select 而不出错?

(Python/Pandas)基于列中非缺失值的子集DataFrame

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

Numpyro AR(1)均值切换模型抽样不一致性

Flask运行时无法在Python中打印到控制台

Python pint将1/华氏度转换为1/摄氏度°°

如何在验证文本列表时使正则表达式无序?

Pythonquests.get(Url)返回Colab中的空内容

如何在Pandas中用迭代器求一个序列的平均值?

有什么方法可以在不对多索引DataFrame的列进行排序的情况下避免词法排序警告吗?

删除另一个div中的特定div容器

如何在Python中画一个只能在对角线内裁剪的圆?