[pyar] ManyToMany en Admin de Django

Juan Carizza juan.carizza en gmail.com
Vie Mayo 18 22:41:21 -03 2018


En el models tengo entendido que ahora se usa __unicode__ en vez de __str___

2018-05-18 22:23 GMT-03:00 Eddy Ruiz <eddyraz.fl en gmail.com>:

> 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/101656ff/attachment.html>


Más información sobre la lista de distribución pyar