[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