Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.forms import modelformset_factory
- from django.shortcuts import render
- from django import forms
- from app.models import Modelo
- class ModeloForm(forms.ModelForm):
- campo_1 = forms.CharField()
- campo_2 = forms.CharField()
- class Meta:
- model = Modelo
- fields = ['campo_1', 'campo_2']
- def vista(request):
- # Si existe al menos una instancia de nuestro modelo, no agregar un formset extra, de lo contrario sí (para que no inicie el template vacío).
- if Modelo.objects.all().exists():
- extra = 0
- else:
- extra = 1
- FormsetFactory = modelformset_factory(Modelo, form=ModeloForm, can_delete=True, extra=extra)
- formset_instance = FormsetFactory(request.POST or None)
- if request.POST and formset_instance.is_valid():
- # Esta parte se encarga de borrar o guardar un formset.
- # Lo que hace es iterar sobre cada form del formset e ir guardandolo o eliminándolo según corresponda.
- # Otra alternativa es hacer formset_instance.save() directamente
- for formset_form in formset_instance:
- if formset_form.cleaned_data:
- if formset_form.cleaned_data['DELETE']:
- formset_form.instance.delete()
- else:
- formset_form.save()
- # formset_instance.save()
- return render(request, 'template.html', {
- 'formset_instance': formset_instance,
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement