在Plone Dexterity图像内容上缺少getImage方法?

时间:2013-06-28 12:43:31

标签: plone dexterity

敏捷内容类型上的Image Field可用的属性:

>>> app.Plone.test.image.
app.Plone.test.image.__class__(         app.Plone.test.image.__provides__(      app.Plone.test.image._height            app.Plone.test.image._p_state
app.Plone.test.image.__delattr__(       app.Plone.test.image.__reduce__(        app.Plone.test.image._p_activate(       app.Plone.test.image._setData(
app.Plone.test.image.__dict__           app.Plone.test.image.__reduce_ex__(     app.Plone.test.image._p_changed         app.Plone.test.image._width
app.Plone.test.image.__doc__            app.Plone.test.image.__repr__(          app.Plone.test.image._p_deactivate(     app.Plone.test.image.contentType
app.Plone.test.image.__format__(        app.Plone.test.image.__setattr__(       app.Plone.test.image._p_delattr(        app.Plone.test.image.data
app.Plone.test.image.__getattribute__(  app.Plone.test.image.__setstate__(      app.Plone.test.image._p_estimated_size  app.Plone.test.image.filename
app.Plone.test.image.__getstate__(      app.Plone.test.image.__sizeof__(        app.Plone.test.image._p_getattr(        app.Plone.test.image.getFirstBytes(
app.Plone.test.image.__hash__(          app.Plone.test.image.__str__(           app.Plone.test.image._p_invalidate(     app.Plone.test.image.getImageSize(
app.Plone.test.image.__implemented__(   app.Plone.test.image.__subclasshook__(  app.Plone.test.image._p_jar             app.Plone.test.image.getSize(
app.Plone.test.image.__init__(          app.Plone.test.image.__weakref__        app.Plone.test.image._p_mtime           app.Plone.test.image.open(
app.Plone.test.image.__module__         app.Plone.test.image._blob              app.Plone.test.image._p_oid             app.Plone.test.image.openDetached(
app.Plone.test.image.__new__(           app.Plone.test.image._data              app.Plone.test.image._p_serial          app.Plone.test.image.size
app.Plone.test.image.__providedBy__(    app.Plone.test.image._getData(          app.Plone.test.image._p_setattr(

我希望方法getImagegetImageURL方法存在......以至于我发现自己通过以下方式解决了这个问题:

def get_image(self):
    return "data:%s;base64,%s" % (self.context.image.contentType,
        base64.encodestring(self.context.image.data))

<img tal:attributes="src view/get_image" />

哪种方法有效,但在很多(希望是显而易见的)方面并不理想。现在,此类型的默认视图通过小部件资源提供所需的功能:

view/++widget++form.widgets.image/@@download/the-image.png

但我无法访问它(AFAICT),因为我已经自定义了此类型的默认视图。应该有getImage方法吗?或者我错过了其他一些明显的方法。

2 个答案:

答案 0 :(得分:3)

你有没有在plone.app.imagescales-way

中尝试过
<img tal:replace="structure context/@@images/shortnameofmyfield/thumb" />

答案 1 :(得分:1)

我解决了类似的问题:

selected_image.restrictedTraverse("@@images").scale('image', width=None, height=None).index_html() 

以原始大小返回图像。