4

我正在尝试在 django 中保存一个表单集。为此,我有我的模型和自定义表格。然后我以这种方式创建我的表单集:

QuoteFormSet = formset_factory(QuoteForm, extra=2)
formset = QuoteFormset(request.POST)

但是当我做 formset.save() 我得到AttributeError: 'QuoteFormFormSet' object has no attribute 'save'

我的模型:

class Quote(models.Model):
    country = models.CharField(max_length=2,)
    street = models.CharField(max_length=100,)

我的表格:

class QuoteForm(forms.ModelForm):
    class Meta:
        model = Quote
    country = forms.ChoiceField(choices=COUNTRIES, required=False)
    street = forms.CharField(max_length=100, required=False)
4

3 回答 3

11

好的,我不得不使用modelformset而不是formset

from django.forms.models import modelformset_factory

def new_quote(request):
    QuoteFormSet = modelformset_factory(Quote, form=QuoteForm, extra=2)
    if request.method == 'POST':
        formset = QuoteFormSet(request.POST, request.FILES)
        if formset.is_valid():
            formset.save()
            #
            return HttpResponseRedirect('/')
    else:
        formset = QuoteFormSet()

    return render(request, 'request_quote_form.html', {
    'formset': formset,
    })
于 2013-04-17T08:09:56.603 回答
1

您没有实例化表单集。

formset = QuoteFormset(request.POST) 
于 2013-04-16T15:11:21.127 回答
1

Formset 没有属性作为保存。因此,请尝试将表单对象一一保存在表单集中。它会起作用的。

if formset.is_valid():
    formset = QuoteFormset(request.POST) 
    for form in formset:
       form.save()
于 2016-02-16T14:36:30.193 回答