django modelformset_factory 中的 MultiValueDictKeyError

2024-03-29

我正在尝试实现一个编辑表单集。然后,我使用 modelformset_factory 实例化表单集中的对象。当请求不是 POST 时,表单集会完美加载,但是,如果请求是 POST,则表单集构造函数会引发 MultiValueDictKeyError。

这是我的代码。

forms.py

class SchoolSectionForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.form_tag = False

        self.helper.layout = Layout(
            Div(
                'name',
                css_class='name',
            ),
        )

        super(SchoolSectionForm, self).__init__(*args, **kwargs)

    class Meta:
        model = SchoolSection

        exclude = [
            'school',
            'created_by',
        ]


class SectionBreakFormSet(BaseFormSet):

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


class SectionBreakForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.form_tag = False

        self.helper.layout = Layout(
            Div(
                Div(
                    'start_time',
                    css_class='start_time',
                ),
                Div(
                    'end_time',
                    css_class='end_time',
                ),
            css_class='formset_element',
            )
        )

        super(SectionBreakForm, self).__init__(*args, **kwargs)

    class Meta:
        model = SectionBreak

        exclude = [
            'school_section',
            'created_by',
        ]

views.py

def school_section_edit(request, section_id):

    section = get_object_or_404(
        SchoolSection,
        id=section_id,
    )

    current_school = request.user.current_school
    school_sections_list = current_school.schoolsection_set.all()

    section_break_formset = modelformset_factory(
        SectionBreak,
        max_num=3,
        extra=0,
        form=SectionBreakForm,
    )

    formset_qset = SectionBreak.objects.filter(school_section=section)

    formset = section_break_formset(queryset=formset_qset)
    school_section_form = SchoolSectionForm(instance=section)

    if request.method == 'POST':
        school_section_form = SchoolSectionForm(request.POST)

        # Bug raises in this line
        formset = section_break_formset(request.POST, queryset=formset_qset) 
        # Bug raises in this line


        if school_section_form.is_valid() and formset.is_valid():

            school_section_form.save()
            formset.save()

            messages.success(
                request,
                u'xxx',
            )

            return HttpResponseRedirect(reverse('school:school_section_add'))

        else:
            messages.error(
                request,
                u'xxx',
            )

    return render(request, 'school/schoolsection_add.html', {
        'school_section_form': school_section_form,
        'formset': formset,
        'school_sections_list': school_sections_list,
    })

template

<form class="new_section_form" method="post" action="">
    <div class="school_section_form">
        {% crispy school_section_form %}
    </div>

    <h3>Horarios de descanso:</h3>

    <div class="section_break_formset">
        {% crispy formset formset.form.helper %}
    </div>

    <button class="button color">guardar</button>
</form>

当我发布表格时......崩溃......我有这个错误

感谢帮助...

异常类型:MultiValueDictKeyError 位于 /administrador/ciclo-educativo/editar/34/ 异常值:“在QueryDict中找不到键u'form-0-id':{u'name':[u'Primaria'],u'form-MAX_NUM_FORMS':[u'3'],u'form -TOTAL_FORMS':[u'1'],u'form-0-start_time':[u'07:00:00'],u'form-0-end_time':[u'12:00:00'] , u'form-INITIAL_FORMS': [u'1'], u'csrfmiddlewaretoken': [u'aZkZPJ6tlzJeCd1kjC0EpkjPuFbWe6IB', u'aZkZPJ6tlzJeCd1kjC0EpkjPuFbWe6IB']}"


您可能需要添加表单 ID{{ 表单.id }} https://stackoverflow.com/questions/15980475/multivaluedictkeyerror-in-django-modelformset-factory e.g. {% crispy formset formset.form.id %}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django modelformset_factory 中的 MultiValueDictKeyError 的相关文章

  • 如何在 django ImageField 中验证图像格式

    我们的项目使用Python 2 7 PIL 1 1 7和Django 1 5 1 有一个 ImageField 适用于许多图像格式 包括 bmp gif ico pnm psd tif 和 pcx 但是要求仅允许 png 或 jpg 图像
  • Django - render()、render_to_response() 和 direct_to_template() 之间有什么区别?

    两者之间的视图有什么区别 用 python django 新手可以理解的语言 render render to response and direct to template 例如从Nathan Borror 的基本应用程序示例 https
  • pyPDF通过django合并并显示为httpresponse

    我在合并 pyPDF 逻辑以将两个 pdf 文件合并到我的 django 站点时遇到问题 我编写了在本地服务器上的 python 文件中运行时用于合并文件的代码 但我需要明确识别要合并的文件 from pyPdf import PdfFil
  • Django ModelForm 不将数据保存到数据库

    Django 初学者在使用表单时遇到很多困难 是的 我已经完成了本教程并浏览了很多网络 我所拥有的是我在这里和其他网站上找到的内容的混合体 我正在使用 Python 2 7 和 Django 1 5 虽然官方文档很广泛 但它往往假设您已经了
  • django自定义模板标签中的访问请求

    我在 myapp extras py 中的代码 from django import template register template Library register inclusion tag new userinfo html d
  • 将 Django 模型映射到外部 API

    上下文 我有一个外部 API 提供数据并允许发布新数据或修补现有数据 API 响应示例 response requests get http api band 4 print response json id 4 name The Beat
  • django 2.0 中的错误 404 静态文件

    我试图在 django 2 0 中找到我的所有静态文件 但是当我只运行服务器时 我收到 404 错误 这是我的设置代码 STATIC URL static STATIC ROOT var www example com static STA
  • 从values() 或values_list() 中排除字段

    有没有一种有效的方法从函数中排除字段values or values list e g Videos objects filter id 1 get values 我想从此查询集中排除该字段duration 我知道我可以指定我想要在结果中包
  • Django admin:如何使用 url GET 参数按日期时间范围过滤记录?

    我有带有时间戳字段的记录 我想按日期时间范围过滤它们的 Django 管理视图 我正在寻找类似添加到网址的内容 timestamp lt 201012310715 timestamp gte 201012300715 这不行 有任何想法吗
  • 在 OrderedDict 中如何按特定属性排序? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在尝试通过执行以下操作对以下 OrderedDict 进行排序 gt gt gt gt from collectio
  • ModuleNotFoundError:没有名为“模型”的模块

    我有一个非常简单的 django 应用程序 我试图将其部署到 heroku 但它不断崩溃 在我的本地机器上一切正常 但在 Heroku 上却不行 这是我收到的错误 切到相关部分 File app hello admin py line 4
  • 在 Django 中为多个查询编写视图的最佳方法?

    这是一个简单的问题 我已经组织了我的模型 以便提供给页面的大多数对象都属于一种类型 项目 该模型包含各种属性 可以帮助我以不同的方式提供服务 我有文章和视频 它们由模型上的 类型 字段确定 类型 文章 等 我有一个列表视图 它显示项目模型中
  • 如何引用 models.py 之外的信号

    在文档中Django 它指定models py是定位信号回调函数的好地方 post save pre save etc 这段代码应该放在哪里 您可以将信号处理和注册代码放在您喜欢的任何地方 但是 您需要确保它所在的模块获取 尽早导入 以便信
  • Django 表单验证消息未显示

    我试图限制可以以表单上传的文件类型 大小和扩展名 该功能似乎有效 但未显示验证错误消息 我意识到if file size gt 4 1024 1024可能不是最好的方法 但我稍后会处理这个问题 这是 forms py class Produ
  • 嵌套重组 - Django

    我有一个包含以下字段的模型 日期 员工 和 计划时间 每个员工对于不同的日期都有不同的计划工作时间 我正在尝试构建我的模板 其中员工按行列出 他们的计划工作时间列在正确的相应日期下的列中 像这样的东西 https i stack imgur
  • @monthly cron 作业不可靠

    我们的客户希望我们每月创建一份报告 过去 我们使用 monthly cron 作业来完成此任务 但这并不可靠 服务器可能会在这一分钟内宕机 Cron 不会重新运行这些作业 如果服务器已启动 此时数据库可能无法访问 如果服务器已启动且数据库已
  • Django:通过外键将两个表连接到第三个表?

    我有三个型号 class A Model class B Model id IntegerField a ForeignKey A class C Model id IntegerField a ForeignKey A 我想要得到 B i
  • 过滤 Django 管理选择框的模型结果

    我今天刚开始使用 Django 到目前为止发现做简单的事情相当困难 我现在正在努力解决的是过滤状态类型列表 StatusTypes 模型是 class StatusTypes models Model status models CharF
  • python 2.7+ 中的组引用无效

    我正在尝试将我的网页 在 django 中创建 中的所有 WikiLink 类型的字符串转换为 html 链接 我正在使用以下表达式 import re expr r s A Z a z A Z a z s repl r a href 1
  • Django:使用 python-magic 在模型中进行文件字段验证

    我有一个包含文件字段的模型 我想将其限制为 pdf 文件 我在模型中编写了干净的方法 因为我还想检查管理和 shell 级别模型的创建 但它不适用于模型清理方法 然而 形式清洁方法正在发挥作用 class mymodel models Mo

随机推荐