[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