Django:保存动态表单域
Django: saving dynamic formfields
首先对这个问题感到抱歉,因为我是新手,英语不是我的母语(请随时询问 post 是否需要编辑)。
我按照这个 thread 来动态保存表单,但你只能用一个字段来做到这一点,现在我试图一次复制 3 个字段(成功)并保存一个字段(用只有一个字段)不是问题,多亏了上面提到的线程。
但是当我的 forms.py 中有 2 个或更多字段时,问题就开始了,它总是说
The ModelName could not be created because the data didn't validate
并指向我的 form.save()
我不知道如何解决我的问题,如果有任何建议,link,甚至示例代码,我们将不胜感激。提前致谢。
这是我的代码:
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()
正如 Daniel Roseman 所说,为什么不使用表单集呢?
作为初学者,我真的不知道它的存在并开始四处挖掘并发现了一些巧妙的东西,比如 elo80ka 的 django-dynamic-formset which really solves every single problem I have (Cheers to him) this 教程真的帮了大忙。
首先对这个问题感到抱歉,因为我是新手,英语不是我的母语(请随时询问 post 是否需要编辑)。
我按照这个 thread 来动态保存表单,但你只能用一个字段来做到这一点,现在我试图一次复制 3 个字段(成功)并保存一个字段(用只有一个字段)不是问题,多亏了上面提到的线程。
但是当我的 forms.py 中有 2 个或更多字段时,问题就开始了,它总是说
The ModelName could not be created because the data didn't validate
并指向我的 form.save()
我不知道如何解决我的问题,如果有任何建议,link,甚至示例代码,我们将不胜感激。提前致谢。
这是我的代码:
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()
正如 Daniel Roseman 所说,为什么不使用表单集呢?
作为初学者,我真的不知道它的存在并开始四处挖掘并发现了一些巧妙的东西,比如 elo80ka 的 django-dynamic-formset which really solves every single problem I have (Cheers to him) this 教程真的帮了大忙。