Podemos crear un modelo conteniendo dos o más clases en django con la clase ModelAdmin. La clase ModelAdmin es la representación de un modelo en la interfaz del administrador, que nos permite establecer el tipo de relación entre las clases
que le incluyamos.
La clase ModelAdmin ya viene activada por defecto, pero en versiones anteriores es necesario añadir django.contrib.admin al bloque INSTALED_APPS del archivo settings.py para poder utilizarlo
Como ejemplo de cómo utilizar ModelAdmin, crearemos el modelo Master-Detalle de una factura, para ello editamos el archivo models.py y creamos las clases necesarias:
class factura(models.Model):
nombre = models.CharField(max_length=40, blank=True)
nit_cliente = models.CharField(max_length=10, blank=True)
fecha = models.DateField(null=True)
total = models.IntegerField(null=True, blank=True)
def __unicode__(self):
return self.total
class detalle_factura(models.Model):
factura = models.ForeignKey(factura, db_column='factura_id')
cliente = models.IntegerField(null=True, blank=True)
producto = models.ForeignKey(producto, db_column='producto_id')
cantidad = models.IntegerField()
subtotal = models.IntegerField()
def __unicode__(self):
return self.subtotal
Ahora creamos el modelo utilizando ModelAdmin y lo añadimos al sitio Admin:
class detalle_facturaInline(admin.TabularInline):
model = detalle_factura
class facturaAdmin(admin.ModelAdmin):
inlines = (detalle_facturaInline,)
admin.site.register(factura, facturaAdmin)
Con esto ya tenemos el modelo Master-Detalle listo.
Para más información visita la documentación de Django: docs.djangoproject.com/en/dev/ref/contrib/admin
Muchas gracias por el codigo me sirvio de mucho
ResponderEliminarNo queda claro, ni explicacion alguna en como en un mismo template podemos visualizar el encabezado (factura) y el detalle (detalle_factura). La verdad es una demostracion muy pobre
ResponderEliminarSi, muy pobre... pero funciona perfecto.
EliminarExcelente, gracias por el aporte!. Me re sirvio
ResponderEliminarcomo puedo sumar los subtotales y completar el total automaticamente?
ResponderEliminarHola, gracias por tu solución. una consulta: esto solo podemos verlo como administrador del sitio. bajo un logueo de admin como superusuario; en algún otro, caso se podría ver libremente en la pagina para usuarios comunes. y como se podría hacer. Agradecido de antemano.
ResponderEliminarExelente!!! podrias hacer una segunda parte de como calcular los subtotales hacia el maestro total? Muchas gracias!!!
ResponderEliminarClaro corto y preciso, Muchas Gracias!!
ResponderEliminarExcelente.... muchas gracias
ResponderEliminar