Formsets en django

Tengo el siguiente codigo:

  1. creo un formset a partir de un formulario form.Form:
    ArticleFormSet = formset_factory(FormularioTipoModelo, max_num=24, min_num=1 ,can_delete=True, validate_min=True)
  2. Inicializo una lista con valores provenientes de la bd para mostrarlos en la plantilla:
    fechaform = ArticleFormSet(initial=lista)
  3. Al hacer el submit en la plantilla, vuelven en el post los formsets modificados/creados por el usuario:
    formset = ArticleFormSet(request.POST, request.FILES)

DUDA: como hago para saber cuales de los formularios que estan en el “initial” fueron modificados por el usuario? segun la documentacion de django tengo que pasarselo cuando se hacen los request.POST pero no se como hacer eso.

Hola!

Según la documentación podrías utilizar has_changed o changed_data para ver si se modificó el form.

formset = ArticleFormSet(request.POST, request.FILES)
for form in formset:
    if form.has_changed():
        print(f"Datos cambiados: {form.changed_data}")
1 me gusta