Skip to content Skip to sidebar Skip to footer

Django - Save Multiple Object With Form.save()

In my application there must be two inputs which will get numbers, and when I'll clickcreate button in the given range (which was written in inputs) difference of that number times

Solution 1:

you can do this in two ways 1)override save method in model form 2)get cleaned data in the view and save multiple times

1)override save method in model form in the model form

classCreateBlankForm(ModelForm):classMeta:
        model = Blank
        fields = '__all__'defsave(self, *args, **kwargs):
        times = self.number_to - self.number_from
        for i intimes:super(CreateBlankForm).save(*args, **kwargs)
    

2)get the cleaned data on the view get the cleaned data and loop over in save method

@login_required(login_url='sign-in')defblanks(request):
    if request.method == 'POST':
        form = CreateBlankForm(request.POST)
        if form.is_valid():
            times = form.cleanded_data['number_to'] - form.cleaned_data['number_from']
            for i in times:
                form.save()
    else:
        form = CreateBlankForm()
    blanks = Blank.objects.all()
    context = {
        'form': form,
        'blanks': blanks,
    }
    return render(request, 'blank.html', context)

Post a Comment for "Django - Save Multiple Object With Form.save()"