[pyar] [django] Cambiando un atributo de un modelo para usar property ... ¿y con el admin qué hago?

Pedro Pezzarini jose2190 en gmail.com
Jue Ene 31 21:21:29 -03 2019


Perdón, me olvidé del guardado....
en el modelo podés sobreescribir el método save

def save(self, *args, **kwargs):
        self.foo = '>>>{0}'.format(self._get_foo())
        super(MyModelName, self).save(*args, **kwargs)

On Thu, Jan 31, 2019 at 9:18 PM Pedro Pezzarini <jose2190 en gmail.com> wrote:

> Buenas Facundo!
> Si te referis al admin como la edición, podés definir el formulario, y
> asignarle un initial
>
> form.fields["foo"].initial = obj._get_foo()
>
> Si por admin te referís al listado, podes definir en el admin.py
> list_display = (myFooField)
>
> def myFooField(self, obj):
>         return(obj._get_foo)
>     myFooField.short_descripcion = 'My Foo Field'
>     myFooField.allow_tags = True
>
> Espero haber sido de ayuda!
> Abrazo!
>
> On Thu, Jan 31, 2019 at 7:02 PM Facundo Batista <facundobatista en gmail.com>
> wrote:
>
>> Hola!
>>
>> Resulta que tengo un modelo en django que tiene el campo "foo".
>>
>> Pero resulta que quiero cambiarle el comportamiento por default,
>> entonces renombro `foo` a `_foo`, y luego agrego un property onda...
>>
>>   def _get_foo(self):
>>     return self._foo[3:]
>>
>>   def _set_foo(self, value):
>>     self._foo = ">>>" + value
>>
>> Entonces, si alguien hace `Coso.foo = "bleh"`, realmente el campo en
>> la base de datos tiene ">>>bleh".
>>
>> Hasta ahora, todo bien.
>>
>> El tema es, ¿qué hago con el admin?
>>
>> Yo quiero que cuando entre a una instancia de este modelo, por ejemplo
>> la de recién, aunque en la DB tenga ">>>bleh", el admin me muestre
>> "bleh". Y que si va el humano y pone "wat", termine ejecutándose el
>> property para que la DB tenga ">>>wat".
>>
>> ¿Se puede? ¿Cómo?
>>
>> Gracias!!
>>
>> --
>> .    Facundo
>>
>> Blog: http://www.taniquetil.com.ar/plog/
>> PyAr: http://www.python.org.ar/
>> Twitter: @facundobatista
>> _______________________________________________
>> 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/20190131/f70316fd/attachment-0001.html>


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