相关疑难解决方法(0)

Django 管理表单失败,因为“form-TOTAL_FORMS”和“form-INITIAL_FORMS”未正确填充

信息:

我想通过以下提供的示例来创建嵌套表单:

http://yergler.net/blog/2009/09/27/nested-formsets-with-django/

此页面上的教程似乎非常好&&它正在尝试解决我遇到的确切问题。

当没有 POST 请求数据(即我们从数据库执行初始填充)时,views.py 文件中的此实现似乎存在问题。

代码可以在上面提供的 URL 中看到(如果需要,我可以发布一些代码,但我担心它会影响这里提供的信息)。

这是失败的 views.py 代码(以粗体显示):

block = get_object_or_404(models.Block, id=block_id)

if request.method == 'POST':
    formset = forms.BuildingFormset(request.POST, instance=block)

    if formset.is_valid():
        rooms = formset.save_all()

        return redirect('block_view', block_id=block.id)

else:
    formset = forms.BuildingFormset(instance=block)  #This is the line that is throwing the ValidationError 
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是:

ValidationError at "urlName":
[u'ManagementForm data is missing or has been tampered with']
Run Code Online (Sandbox Code Playgroud)

我已经挖得更深了,看来这个失败发生在 site-packages/django/forms/formsets.py 行

is_valid()检查失败,因为一些managementform所需的数据(形状TOTAL_FORMS的,形状和INITIAL_FORMS形状MAX_NUM_FORMS)是无效的。下面是 self.errors 的实际输出:

{u'TOTAL_FORMS': [u'This field is required.'], u'INITIAL_FORMS': [u'This field is required.']}
Run Code Online (Sandbox Code Playgroud)

代码:

edit_building.html: …

django django-forms django-views

3
推荐指数
1
解决办法
5286
查看次数

标签 统计

django ×1

django-forms ×1

django-views ×1