[pyar] ManyToMany en Admin de Django
Pedro Pezzarini
jose2190 en gmail.com
Vie Mayo 18 22:43:38 -03 2018
Tu metodo __str__ de topings está dentro de meta class? Porque debería ir
afuera y en lugar de nombre_toping debería ir self.nombre_toping
On Fri, May 18, 2018, 10:24 PM Eddy Ruiz <eddyraz.fl en gmail.com> wrote:
> Bueans Noches, tengo un problema
>
> en un projecto de DJango 1.11 con Python 3.5 y PostgreSQL 9.5 tengo el
> siguiente modelo
>
>
> models.py
>
> ****************************************************************************************************************************
> from django.db import models
>
>
> class Toppings(models.Model):
> nombre_topping = models.CharField(max_length=20,default="Teclee el
> nombre del Topping")
>
>
>
> class Meta:
> managed = True
> verbose_name = 'agrego'
> verbose_name_plural = 'lista de agregos'
>
> def __str__(self):
> return nombre_topping
>
>
>
> class Pizza(models.Model):
> tipo_pizza = models.CharField(max_length=20,default="Teclee el nombre
> de la Pizza")
> precio = models.DecimalField(max_digits=4,decimal_places=2)
> topping = models.ManyToManyField(Toppings)
>
>
> class Meta:
> managed = True
> verbose_name = 'pizza'
> verbose_name_plural = 'Pizzas del Dia'
>
> def __str__(self):
> return self.tipo_pizza
>
> ******************************************************************************************************************************************
>
> y en la parte del Admin tengo lo siguiente:
>
> ******************************************************************************************************************************************
>
> from django.contrib import admin
> from .models import Toppings,Pizza
>
> # Register your models
> here.
>
>
>
>
>
> class ToppingsAdmin(admin.ModelAdmin):
> list_display = ('nombre_topping',)
> search_fields = ['nombre_topping']
>
>
>
>
> class PizzaAdmin(admin.ModelAdmin):
> list_display = ('tipo_pizza','precio','get_toppings')
> search_fields = ['tipo_pizza','precio','get_toppings']
>
> def get_toppings(self, obj):
> short_description = 'Agregos'
> allow_tags = True
> return "\n".join([t.nombre_topping for t in
> obj.topping.all()])
>
>
>
> admin.site.register(Toppings,ToppingsAdmin)
> admin.site.register(Pizza,PizzaAdmin)
>
>
> *****************************************************************************************************************
>
>
> El asunto esta en que se muestran los toppings(agregos) en el multiselect
> de la pagina del Admin de Django como Topping Object e igual al
> eliminarlos, sin embargo en el en la pagina que los lista en el admin se
> muestran los valores que se especifica en la funcion get_toppings sin
> problemas,
>
> Agradeceria que alguien me iluminara al respecto pues he buscado en
> Internet y el asunto se queda ahi no aparecen respuestas a esto, Gracias de
> Antemano.
>
>
>
>
>
>
>
>
> --
>
> ********************************************************************************
> Eddy Ruiz Azcuy
> Network Administrator. Python Coder and OpenSource User
> tel : + 53 5326 0182
>
> La Habana Cuba
>
> ********************************************************************************
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180518/5dd62732/attachment.html>
Más información sobre la lista de distribución pyar