[Zope-es] unsubscriptable object
Ignacio Fernández
ifamay en yahoo.es
Vie Mayo 23 11:37:28 CEST 2008
Holas, lista.
Bueno, pues he solucionado el tema del escalado (por fin), pero ahora me encuentro con un problema al intentar guardar la nueva imagen como imagen del usuario:
haciendo:
context.funcionescalado(str(miembro), foto.data, foto.height, foto.width) #1
id = str(miembro)+'.thumb.jpg' #2
context.portal_membership.changeMemberPortrait(portrait = context[id].data, id = str(miembro)) #3
y explico:
#1: genera la imagen escalada (correctamente)
#2: el identificativo de la imagen es el identificativo del miembro + la cadena 'thumb.jpg'
#3: llamo al metodo para cambiar el retrato del miembro y me salta un error tal que:
Exception TypeAttributeError
Exception Value'str' object has no attribute 'filename'
Traceback (innermost last):
* Module ZPublisher.Publish, line 115, in publish
* Module ZPublisher.mapply, line 88, in mapply
* Module ZPublisher.Publish, line 41, in call_object
* Module Shared.DC.Scripts.Bindings, line 311, in __call__
* Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec
* Module Products.PythonScripts.PythonScript, line 326, in _exec
* Module None, line 16, in convert_image
<PythonScript at /lalala/portal_skins/custom/convert_image>
Line 16
* Module Products.PlonePAS.tools.membership, line 444, in changeMemberPortrait
* Module Products.CMFPlone.MembershipTool, line 181, in changeMemberPortraitAttributeError: 'str' object has no attribute 'filename'
¿Alguna idea? La línea 16 corresponde con la marcada como #3.
Gracias mil....
8) Ignacio Fernández
----- Mensaje original ----
De: Mikel Larreategi <mlarreategi en codesyntax.com>
Para: Lista de discusión sobre Zope en castellano <zope-es en aditel.org>
Enviado: miércoles, 21 de mayo, 2008 15:46:13
Asunto: Re: [Zope-es] unsubscriptable object
2008/5/21 Ignacio Fernández <ifamay en yahoo.es>:
> Hola, Mikel
>
>> Péganos plis el código de escalado.py (si no es secreto de estado :))
>
> *CODIGO*
> from Products.CMFPlone.utils import scale_image
>
> def resize(foto):
> if foto.size[0]>foto.size[1]:
> scaled, mimetype = scale_image(foto, (150, ((foto.size[1] * 150) / foto.size[0]) ))
> elif foto.size[1]>foto.size[0]:
> scaled, mimetype = scale_image(foto, ((foto.size[0] * 150) / foto.size[1],150) )
> else: scaled, mimetype = scale_image(foto, (150,150))
> return scaled
> */CODIGO*
Mmmmm... ¿qué es foto.size? Eso es lo que te está dando "unsubscriptable object"
>
>> Por cierto, pregunta: qué haces utilizando External Methods en un Plone? :)
>
> Haciendo el mal ;)
Ay..... :)
>
> Nada, importando utils.py para escalar la imagen. ¿Alguna otra idea?
Una bonita vista heredando de Products.Five.browser.BrowserView
Aunque un poco viejo:
http://plone.org/documentation/tutorial/five-zope3-walkthrough/browser-view-1
Evidentemente, eso si estamos hablando de Plone 2.5.x....
Mikel
--
Mikel Larreategi
mlarreategi en codesyntax.com
CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80
______________________________________________
Enviado desde Correo Yahoo! La bandeja de entrada más inteligente.
Más información sobre la lista de distribución Zope-es