#30898: Multi FormSet form Error  object has no attribute instance
-------------------------------------+-------------------------------------
               Reporter:             |          Owner:  nobody
  azharsaleem9                       |
                   Type:  Bug        |         Status:  new
              Component:  Forms      |        Version:  2.2
               Severity:  Normal     |       Keywords:  Formsets, forms,
           Triage Stage:             |  object has no attribute instance
  Unreviewed                         |      Has patch:  0
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 I'm working with multi Formset and get this problem. I mentioned my code
 blow please check and help me to solve this issue. Thanks

 **'VoucherEnteryForm' object has no attribute 'instance'**


 == **views.py**

 {{{
 def index(request):
     voucherEnteryFormset = modelformset_factory(
         VoucherEntery, form=VoucherEnteryForm, fields=('group',
 'subGroup', 'obtainMarks', 'totalMarks', 'grade'))
     form = JournalVoucherForm(request.POST or None)
     formset = voucherEnteryFormset(
         request.POST or None, queryset=VoucherEntery.objects.none(),
 prefix='jounarlvoucher')
     if request.method == 'POST':
         if form.is_valid() and formset.is_valid():
             try:
                 with transaction.atomic():
                     voucher = form.save(commit=False)
                     voucher.save()

                     for entery in formset:
                         data = entery.save(commit=False)
                         data.voucher = voucher
                         data.save()
             except IntegrityError:
                 print('Error Encountered')
             return redirect('home-page')
     context = {
         'formset': formset,
         'form': form
     }
     return render(request, 'myform.html', context)
 }}}


 == **models.py**


 {{{
 class JounarlVoucher(models.Model):
     name = models.CharField(max_length=50)
     datevc = models.DateField(auto_now=False)
     reference = models.CharField(max_length=10)
     jrcode = models.IntegerField()
     createdAt = models.DateTimeField(auto_now_add=True)

     def __str__(self):
         return self.name

     class Meta:
         db_table = "JounarlVoucher"


 class VoucherEntery(models.Model):
     voucher = models.ForeignKey(
         JounarlVoucher, related_name='jounarlvoucher',
 on_delete=models.CASCADE)
     group = models.CharField(max_length=50)
     subGroup = models.CharField(max_length=50)
     obtainMarks = models.IntegerField()
     totalMarks = models.IntegerField()
     grade = models.CharField(max_length=10)
     createdAt = models.DateTimeField(auto_now_add=True)

     def __str__(self):
         return self.voucher

     class Meta:
         db_table = "VoucherEntery"
 }}}


 == **forms.py**


 {{{
 class JournalVoucherForm(forms.Form):
     name = forms.CharField(label='Name', required=True,
 widget=forms.TextInput(
         attrs={
             'class': 'form-control',
             'placeholder': 'Name'
         }
     ))
     datevc = forms.DateField(label='Date', input_formats=['%Y/%m/%d'],
 widget=forms.DateTimeInput(
         attrs={
             'class': 'form-control',
         }
     ))
     reference = forms.CharField(label='Ref', required=False,
 widget=forms.TextInput(
         attrs={
             'class': 'form-control',
         }
     ))
     jrcode = forms.IntegerField(label='Code', required=False,
 widget=forms.NumberInput(
         attrs={
             'class': 'form-control',
         }
     ))


 class VoucherEnteryForm(forms.Form):
     group = forms.ChoiceField(label='Group', required=True,
 choices=myGroup, widget=forms.Select(
         attrs={
             'class': 'form-control formset-field',
         }
     ))
     subGroup = forms.ChoiceField(label='Sub Group', required=True,
 choices=subGroup, widget=forms.Select(
         attrs={
             'class': 'form-control formset-field',
         }
     ))
     obtainMarks = forms.IntegerField(label='Obtain Marks', required=True,
 widget=forms.NumberInput(
         attrs={
             'class': 'form-control formset-field',
         }
     ))
     totalMarks = forms.IntegerField(label='Total Marks', required=True,
 widget=forms.NumberInput(
         attrs={
             'class': 'form-control formset-field',
         }
     ))
     grade = forms.CharField(label='Grade', required=True,
 widget=forms.TextInput(
         attrs={
             'class': 'form-control formset-field',
         }
     ))
 }}}


 == **HTML Template**


 {{{
 <form method="POST">
     {% csrf_token %}
     {{ form.as_p }}

     {% for data_frm in formset %}
     <tr class="item">
         <td>{{ data_frm.group }}</td>
         <td>{{ data_frm.subGroup }}</td>
         <td>{{ data_frm.obtainMarks }}</td>
         <td>{{ data_frm.totalMarks }}</td>
         <td>{{ data_frm.grade }}</td>
         <td>
             <button class="btn btn-danger remove-form-row">Delete</button>
         </td>
     </tr>
     {% endfor %}

     <button type="button" class="btn btn-success add-form-row" id="{{
 formset.prefix }}">
         Add
     </button>
     {{ formset.management_form }}
     <button type="submit" class="btn btn-success">Submit</button>
 </form>
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30898>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/055.b6d1626c77bfa64364af4ec7f67fcf49%40djangoproject.com.

Reply via email to