Entiendo... Os dejo más información de lo que yo hice leyendo la documentación de Django. Tras poner todo eso lo único que me sale en la página es el botón de Actualizar unidades.
Por sino se sobreentiende, lo que estoy tratando de hacer es un carrito de compra, donde los artículos son los recambios.
Saludos y gracias de antemano de nuevo.
models.py
Código Python:
Ver originalclass CarritoDeCompra(models.Model):
user = models.ForeignKey(User)
recambio = models.ForeignKey(Recambio)
unidades = models.PositiveSmallIntegerField()
precio = models.FloatField()
subfamilia = models.ForeignKey(Subfamilia)
class Meta:
verbose_name_plural = 'Carritos de compra'
def __unicode__(self):
return unicode(self.user)
forms.py
Código Python:
Ver originalclass UnidadesForm(forms.ModelForm):
class Meta:
model = CarritoDeCompra
fields = ['unidades']
views.py
Código Python:
Ver original@login_required(login_url='/iniciar-sesion/')
def carrito_de_compra(request):
lista_recambios = CarritoDeCompra.objects.filter(user=request.user)
precio_total = 0
unidades_totales = 0
for recambio in lista_recambios:
precio_total = recambio.precio * recambio.unidades + precio_total
unidades_totales = recambio.unidades + unidades_totales
UnidadesFormSet = formset_factory(CarritoDeCompra, extra=0)
if request.method == 'POST':
formset = UnidadesFormSet(request.POST, request.FILES)
if formset.is_valid():
# actualizar las unidades
return HttpResponseRedirect('/carrito-de-compra/')
else:
formset = UnidadesFormSet()
return render_to_response('carrito_de_compra.html', {
'lista_recambios': lista_recambios,
'precio_total': precio_total,
'unidades_totales': unidades_totales,
'formset': formset
}, context_instance=RequestContext(request))
carrito_de_compra.html
Código Python:
Ver original[...]
<form method="post" action="">{% csrf_token %}
{{ formset.management_form }}
<table>
{% for form in formset %}
{{ form }}
{% endfor %}
</table>
<input type="submit" value="Actualizar unidades"/>
</form>
[...]