Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ####views.py
- def formv_ordencompra(request):
- OrdenCompraFormSet = modelformset_factory(OrdenCompraProducto, form=OrdenCompraForm, extra=10)
- if request.method == 'POST':
- print('1')
- formset = OrdenCompraFormSet(request.POST)
- if formset.is_valid():
- formset_obj = formset.save(commit=False)
- ordencompra = OrdenCompra.objects.create()
- for form_obj in formset_obj:
- form_obj.orden = ordencompra
- form_obj.save()
- messages.success(request, f'La orden fue cargada!')
- return redirect('.')
- else:
- print('2')
- formset = OrdenCompraFormSet()
- return render(request, 'webapp/formularios/ordencompra.html', {'formset': formset})
- ####urls.py
- path(formulario + 'ordencompra/', views.formv_ordencompra, name='form-ordencompra'),
- ####models.py
- class OrdenCompra(models.Model):
- fecha_emision = models.DateTimeField(default=datetime.datetime.today())
- def __str__(self):
- return 'Orden N°: %s' % (self.id)
- class OrdenCompraProducto(models.Model):
- orden = models.ForeignKey(OrdenCompra, on_delete=models.PROTECT)
- tipo_producto = models.ForeignKey(TipoProducto, on_delete=models.PROTECT)
- cantidad = models.IntegerField()
- fecha_entrega = models.DateField(blank=True)
- proveedor_surgerido = models.CharField(max_length=50, blank=True)
- def __str__(self):
- return 'Producto: %s - Cantidad: %s' % (self.tipo_producto, self.cantidad)
- ###forms.py
- class OrdenCompraForm(forms.ModelForm):
- class Meta:
- model = OrdenCompraProducto
- fields = [
- 'tipo_producto',
- 'cantidad',
- 'fecha_entrega',
- 'proveedor_surgerido',
- ]
- widgets = {
- 'fecha_entrega': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
- }
- ####HTML
- {% extends 'webapp/base.html' %}
- {% load crispy_forms_tags %}
- {% load static %}
- {% block content_principal %}
- <form class="form-horizontal" method="POST" action="">
- {% csrf_token %}
- {{ formset.management_form }}
- <div class="">
- {% for form in formset %}
- <div class="input-group">
- <div class="input-group-append">
- <button class="btn btn-success add-form-row">
- </div>
- {{form|crispy}}
- </div>
- <hr>
- {% endfor %}
- <div class="form-group">
- <button class="btn btn-outline-info" type="submit">Cargar</button>
- </div>
- </div>
- </form>
- </div>
- {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement