Cita:
Iniciado por alrvivas razpeitia gracias e intentado con formsets ( modelformset_factory e inlineformset_factory ) y e podido guardar n cantidad de registros pero me muestra todos los registros anteriores que e almacenado. y la idea es solo mostrar campos nuevos. si pudieras indicarme el camino o ejemplificarme te lo agradecería
view.py
Código PHP:
from django.forms.models import modelformset_factory
def add_producto_saldo(request):
producto = Product.objects.order_by('categoria', 'orden')
saldo = SaldoAnterior.objects.all()
ProductoSaldoFormSet = modelformset_factory(ProductoSaldo)
if request.method == 'POST':
formset = ProductoSaldoFormSet(request.POST, request.FILES)
if formset.is_valid():
saldo = formset.save(commit = False)
saldo .save()
return redirect('exito')
else:
formset = VentaProductoFormSet()
page_title = "Capturar Productos"
template = "add-producto-saldo.html"
return render_to_response(template, locals(), context_instance=RequestContext(request))
add-producto-saldo.html
Código HTML:
<form method="post" action="">
{% csrf_token %}
{{ formset.management_form }}
<table>
{% for form in formset %}
{{ form }}
{% endfor %}
</table>
<button type="submit" id="comment-button" class="btn " name="_save">Continuar</button>
</form>
Aprendiendo un poquito mas me di cuenta de que el modelformset_factory es el equivalente a objects.all() por lo cual me mandaba todos mis registros anteriores, por lo cual solucione solo modificando una sola linea
Código PHP:
from django.forms.models import modelformset_factory
def add_producto_saldo(request):
producto = Product.objects.order_by('categoria', 'orden')
saldo = SaldoAnterior.objects.all()
ProductoSaldoFormSet = modelformset_factory(ProductoSaldo)
if request.method == 'POST':
formset = ProductoSaldoFormSet(request.POST, request.FILES)
if formset.is_valid():
saldo = formset.save(commit = False)
saldo .save()
return redirect('exito')
else:
formset = VentaProductoFormSet(queryset=VentaProducto.objects.none())"""Aqui modifique"""
page_title = "Capturar Productos"
template = "add-producto-saldo.html"
return render_to_response(template, locals(), context_instance=RequestContext(request))
Gracias razpeitia por orientarme