Foros del Web » Programando para Internet » Python »

Cómo mostrar tabla manytomany en el admin?

Estas en el tema de Cómo mostrar tabla manytomany en el admin? en el foro de Python en Foros del Web. Buenas tengo dos tablas con una relación de muchos a muchos y me gustaría saber si es posible mostrarla en la vista del admin y, ...
  #1 (permalink)  
Antiguo 06/07/2015, 09:12
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 9 años, 5 meses
Puntos: 0
Cómo mostrar tabla manytomany en el admin?

Buenas tengo dos tablas con una relación de muchos a muchos y me gustaría saber si es posible mostrarla en la vista del admin y, si lo es, cómo?
Gracias de antemano, un saludo!
  #2 (permalink)  
Antiguo 06/07/2015, 12:04
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Cómo mostrar tabla manytomany en el admin?

En el modelo que donde esta tu relación muchos a muchos ahi te debe de aparecer como un select multiple o si la ajustas como un filtro horizontal te aparece algo mas o menos así.

  #3 (permalink)  
Antiguo 07/07/2015, 01:25
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Cómo mostrar tabla manytomany en el admin?

No lo acabo de entender.. aver tengo 2 tablas que son Clientes y Productos (ahora pondré como las tengo creadas), y me gustaría hacer una tercera tabla que muestre una lista de qué compra cada cliente.
models.py
Código Python:
Ver original
  1. class Client(models.Model):
  2.     nombre = models.CharField(max_length=50)
  3.     apellido = models.CharField(max_length=50)
  4.     correo = models.EmailField(max_length=75)
  5.     provincia = models.ForeignKey(Province)
  6.     cp = models.DecimalField(max_digits=5, decimal_places=0, verbose_name="CP")
  7.     telefono = models.DecimalField(max_digits=9, decimal_places=0, verbose_name="Teléfono")
  8.     def __str__(self):
  9.         return self.nombre
  10.     class Meta:
  11.         ordering = ["nombre"]
  12.         verbose_name = "Cliente"
  13.  
  14. class Product(models.Model):
  15.     proveedor = models.ForeignKey(Provider)
  16.     oferta = models.CharField(max_length=100)
  17.     descripcion = models.TextField(blank=True)
  18.     destino = models.ForeignKey(Continent)
  19.     plazas = models.DecimalField(max_digits=3, decimal_places=0)
  20.     precio = models.DecimalField(max_digits=8, decimal_places=2)
  21.  
  22.     def __str__(self):
  23.         return self.oferta
  24.     class Meta:
  25.         ordering = ["oferta"]
  26.         verbose_name = "Producto"
admin.py
Código Python:
Ver original
  1. class ClientAdmin(admin.ModelAdmin):
  2.     fieldsets = [
  3.         ('Datos', {'fields': ['nombre', 'apellido', 'correo', 'provincia', 'cp', 'telefono']}),
  4.     ]
  5.     list_display = ('nombre', 'apellido', 'correo', 'provincia', 'cp', 'telefono')
  6.     list_filter = ('nombre', 'provincia')
  7.  
  8. class ProductAdmin(admin.ModelAdmin):
  9.     fieldsets = [
  10.         ('Proveedor', {'fields': ['proveedor']}),
  11.         ('Información', {'fields': ['oferta', 'descripcion', 'destino', 'plazas', 'precio']}),
  12.     ]
  13.     inlines = [CalInline]
  14.     list_display = ('oferta', 'proveedor', 'destino', 'plazas', 'precio')
  15.     list_filter = ('proveedor', 'destino')

Gracias y perdón por las molestias

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:58.