【问题标题】:Django: saving dynamic formfieldsDjango:保存动态表单域
【发布时间】:2016-01-11 11:20:01
【问题描述】:

首先对这个问题感到抱歉,因为我是新手,英语不是我的母语(请随时询问帖子是否需要编辑)。

我正在关注thread 以动态保存表单,但您只能使用一个字段执行此操作,现在我尝试一次复制 3 个字段(成功)并保存一个字段(仅使用一个字段进行测试)多亏了上面提到的线程,这不是问题。

但是当我的forms.py中有2个或更多字段时,问题就开始了,它总是说

The ModelName could not be created because the data didn't validate

并指向我的form.save()

我不知道如何解决我的问题,任何建议、链接甚至示例代码都将不胜感激。提前致谢。

这是我的代码:

forms.py

class aform(ModelForm):

    class Meta:
        model = boom
        fields = ('a', 'b', 'c',)
    def __init__(self, *args, **kwargs):
        super(aform, self).__init__(*args, **kwargs)
        self.fields['a'].widget.attrs.update({'id': '0', 'name':'a',})
        self.fields['b'].widget.attrs.update({'id': '1','name':'a',})

我的观点

def index(request):
    form = aform(request.POST)
    if request.method == 'POST':

        if form.is_valid():
            for name in request.POST.getlist('a'):
                catform = aform({'a': name}, instance=boom())
                catform.save()

【问题讨论】:

  • 你为什么不使用表单集?
  • 谢谢,我去查一下
  • 真的非常感谢。解决了我遇到的所有问题

标签: python django django-forms django-views


【解决方案1】:

正如 Daniel Roseman 所说,为什么不使用表单集呢?

作为一个初学者,我真的不知道它的存在,并开始四处挖掘,发现了一些整洁的东西,比如 elo80ka 的 django-dynamic-formset,它真正解决了我遇到的每一个问题(为他干杯)this 教程真的很有帮助。

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 2016-04-22
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2018-05-24
    • 2023-03-08
    相关资源
    最近更新 更多