2010-05-23 17 views
6

Estoy usando la interfaz de administración para ver facturas y productos. Para facilitar las cosas, he configurado los productos como en línea para las facturas, por lo que veré los productos relacionados en el formulario de la factura. Como pueden ver, estoy usando una relación de muchos a muchos.Cómo personalizar un modelo en línea de muchos a muchos en django admin

En models.py:

class Product(models.Model): 
    name = models.TextField() 
    price = models.DecimalField(max_digits=10,decimal_places=2) 

class Invoice(models.Model): 
    company = models.ForeignKey(Company) 
    customer = models.ForeignKey(Customer) 
    products = models.ManyToManyField(Product) 

En admin.py:

class ProductInline(admin.StackedInline): 
    model = Invoice.products.through 

class InvoiceAdmin(admin.ModelAdmin): 
    inlines = [FilteredApartmentInline,] 
admin.site.register(Product, ProductAdmin) 

El problema es que django presenta los productos como una tabla de menús desplegables (uno por producto asociado). Cada menú desplegable contiene todos los productos enumerados. Entonces, si tengo 5000 productos y 300 están asociados con una determinada factura, django realmente carga 300x5000 nombres de productos. Además, la mesa no es estética.

No necesito que los productos sean actualizables mediante el formulario de factura. ¿Cómo puedo cambiarlo para que solo muestre el nombre del producto en la tabla en línea? ¿Qué formulario debo anular y cómo?

+0

En admin.py InvoiceAdmin debe ser Inlines = [] ProductInline – Timo

Respuesta

4

Creo que es simple, no utilice la línea, sólo tiene que utilizar la propiedad ModelAdmin.filter_horizontal

+0

que responde a mi pregunta por completo. Pero ahora tengo un seguimiento, esto muestra la lista de nombres de productos, ¿y si necesito que sean enlaces a los productos para que pueda vincular desde la factura a los productos? – Jonathan

+0

cuando selecciona los productos en Factura y guarda el objeto que vincula ambos objetos – diegueus9

+0

El enlace proporcionado está muerto –

Cuestiones relacionadas