python - BaseModelFormSet __init__() got an unexpected keyword argument -
i getting above error when have tried convert inline_formset have @ least first row required. (please see here stackoverflow question)
my existing code below:
#views.py def application(request, job_id): job = get_object_or_404(job, pk=job_id) #return 404 if job isn't yet published if (job.pub_date>timezone.now() or job.close_date<timezone.now()): return httpresponsenotfound('<h1>job not found</h1>') #create inlineformsets (can_delete) set false empty upon population educationinlineformset = inlineformset_factory(applicant, education, extra=1, can_delete=false) qualificationinlineformset = inlineformset_factory(applicant, qualification, extra=1, can_delete=false) employmentinlineformset = inlineformset_factory(applicant, employment, extra=1, can_delete=false) if request.method == 'post': applicant = applicant(job=job) form = applicantform(request.post, instance=applicant) bottom_form = applicantformbottom(request.post, instance=applicant) education_formset = educationinlineformset(request.post, instance=applicant) qualification_formset = qualificationinlineformset(request.post, instance=applicant) employment_formset = employmentinlineformset(request.post, instance=applicant) #check of forms , formsets valid if form.is_valid() , bottom_form.is_valid() , education_formset.is_valid() , qualification_formset.is_valid() , employment_formset.is_valid(): # save model database, directly form: form.save() bottom_form.save() education_formset.save() qualification_formset.save() employment_formset.save() return render(request, 'jobs/success.html') else: applicant = applicant(job=job) form = applicantform(instance=applicant) bottom_form = applicantformbottom(instance=applicant) education_formset = educationinlineformset(instance=applicant) qualification_formset = qualificationinlineformset(instance=applicant) employment_formset = employmentinlineformset(instance=applicant) c = { 'job' : job, 'form' : form , 'bottom_form' : bottom_form, 'education_formset' : education_formset, 'qualification_formset' : qualification_formset, 'employment_formset' : employment_formset, } return render(request, 'jobs/application.html', c) in order customise formset defined following:
class baseformset(basemodelformset): def __init__(self, *args, **kwargs): super(baseformset, self).__init__(*args, **kwargs) form in self.forms: form.empty_permitted = false and pass use follows:
educationinlineformset = inlineformset_factory(applicant, education, extra=1, can_delete=false, formset=baseformset) this returns above error , having read around lot i'm still none wiser how can keep passing instance formset.
any appreciated.
regards,
chris.
i had similar issue - problem customised formset.
try subclassing baseinlineformset (not basemodelformset).
here relevant section of the docs.
Comments
Post a Comment