Tengo 3 modelos principales Cliente, Productos y Cotizacion, aparte un modelo intermedio que usa el modelo de Cotizacion llamada CotizacionProductos.
Código Python:
Ver original
# Modelo para los datos del cliente class Cliente(models.Model): fecha = models.DateTimeField(auto_now_add=True) nombre = models.CharField(max_length=100,verbose_name='Nombre del cliente') email= models.CharField(max_length=100,verbose_name='Email del cliente') def __unicode__(self): return '%s' % (self.nombre) # Modelo para los datos del producto que se utiliza para generar la cotizacion del cliente class Productos(models.Model): nombre = models.CharField(max_length=200, verbose_name='Nombre del producto o servicio') precio = models.DecimalField(max_digits=10,decimal_places=2,default=Decimal('0.00')) def __unicode__(self): return '%s' % (self.nombre) # Modelo para generar la cotizacion de un cliente. class Cotizacion(models.Model): fecha = models.DateTimeField(verbose_name='Fecha de Creación', auto_now_add=True, null=True) datoscliente = models.ForeignKey(Cliente,verbose_name='Nombre del cliente') productos = models.ManyToManyField(Productos,through='CotizacionProductos') # Preformateando la salida del texto def __unicode__(self): return 'Factura de' +' %s ' % (self.datoscliente.nombre)
Esta es mi tabla intermedia: CotizacionProductos
Código Python:
Ver original
# modelo intermediario que utiliza el modelo Cotizacion class CotizacionProductos(models.Model): # relacionamos el modelo con el modelo de Cotizacion cotizacion = models.ForeignKey(Cotizacion) producto = models.ForeignKey(Productos) # campo que nos permite añadir el numero de articulos de un producto o servicio a cotizar numero_productos = models.DecimalField(max_digits=10,decimal_places=0) precio = models.DecimalField(max_digits=10,decimal_places=2,default=Decimal('0.00'))
Con estos modelos en el Backend de Django logro hacer lo que pretendo, eso lo logro con ayuda de una propiedad que se usa en el archivo admin.py llamada TabularInline. Aquí es como se ve:
Sin embargo, quiero lograr lo mismo pero en el Frontend que estoy desarrollando. He tratado con el uso de ModelForm, formset, pero sin resultados satisfactorios aun. ¿Cual es el mejor metodo de trabajar con este tipo de Modelos que tienen una relación muchos a muchos y una tabla intermedia como es mi caso?.
Espero me puedan iluminar =)
Saludos.