Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

在openerp中使用mako template



  • 我现在想在openerp中使用mako template,参考文章:http://doc.openerp.com/v6.0/developer/Web_client_v6/mako_template.html

    我的做法如下:
    mytemplate.py

    <br />mytemplate = mylookup.get_template(&quot;my_temp.mako&quot;)<br />mytemplate.render()<br />
    



    my_temp.mako

    <br />&lt;%def name=&quot;draw_bar()&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;%<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; python code&nbsp; #一段画图代码,pycha的sample,这段代码在py文件中测试,可以输出一个图片文件<br />&nbsp; &nbsp; &nbsp; &nbsp; %&gt;<br />%&gt;<br />&lt;body&gt;<br />&nbsp; &nbsp; &lt;table&gt;<br />&nbsp; &nbsp; &nbsp; &lt;tr&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ${draw_bar()}&nbsp;  #这行代码是调用上面的函数,希望把图形显示在网页的表格中<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/td&gt;<br />&nbsp; &nbsp; &nbsp; &lt;/tr&gt;<br />&nbsp; &nbsp; &lt;/table&gt;<br />&lt;/body&gt;<br /><br />现在的问题是,mako模板上的其他内容都可以输出,唯独想放置图片的那个表格没有任何内容,draw_bar函数不知道是否运行正确,在py文件中测试时,draw_bar函数调用后,可以在硬盘上生成一个图片文件,但是放在mako模板中,硬盘上没有文件输出,生成的页面也没有图形。<br /><br />请问在mako template中,如何才能用python代码画出一个图形来呢?<br />谢谢!
    


  • 图片 一般不能直接在 html 中使用.

    html 中. 要使用 img 标签才阔以显示图片.
    例如:

    <br />&lt;%<br />import base64<br />def draw_bar():<br />	fp = file(r&#039;test.png&#039;, &#039;rb&#039;)<br />	content = fp.read()<br />	fp.close()<br />	return &#039;&lt;img src=&quot;data:image/png;base64,%s&quot; /&gt;&#039; % base64.encodestring(content)<br /><br />%&gt;<br /><br />&lt;body&gt;<br />&nbsp; &nbsp; &lt;table&gt;<br />&nbsp; &nbsp; &nbsp; &lt;tr&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;td&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ${draw_bar()}<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/td&gt;<br />&nbsp; &nbsp; &nbsp; &lt;/tr&gt;<br />&nbsp; &nbsp; &lt;/table&gt;<br />&lt;/body&gt;<br /><br />
    


  • mrshelly,太感谢了,按照你的方法终于搞定了。不过测试的时候有一个问题没有发现,今天正式使用却出现问题了。
    我将图片加入mako模版,收到的邮件,测试时一直使用thirdenbird或foxmail邮件客户端收邮件,所以没有任何问题,图片可以正常显示。
    但是同事却是使用QQ网页邮箱,在网页邮箱中,图片无法显示,而且也不是普通的被阻止,如果是被阻止,应该有提醒可以显示图片的。
    不仅是QQ邮箱,gmail网页邮箱也显示不了图片。
    请问这个大概是怎么回事呢?
    谢谢



  • 安全问题...

    最简单的检查方法, 就是将 邮件 MIME 数据提出来, 然后还原后,查看邮件内容有哪些改变.  很大可能是 QQ Gmail 过滤掉了邮件中的内容...(一般来讲 图片内容 可能会被过滤) 因为毕竟有可能会造成客户端的流量耗用.



  • gmail和QQ邮箱都不行,但是126没有问题,比对了一下两个邮箱的信息:
    126:

    <br />Content-Type: multipart/alternative; boundary=&quot;------------000908050304070300020106&quot;<br />MIME-Version: 1.0<br />This is a multi-part message in MIME format.<br />--------------000908050304070300020106<br />Content-Type: text/plain; charset=UTF-8; format=flowed<br />Content-Transfer-Encoding: 8bit<br />
    


    QQ:

    <br />Content-Type: multipart/mixed; boundary=&quot;===============1468844308==&quot;<br />MIME-Version: 1.0<br />--===============1468844308==<br />MIME-Version: 1.0<br />Content-Type: text/html; charset=&quot;utf-8&quot;<br />Content-Transfer-Encoding: base64<br />
    


  • 请问怎样才能修改Content-Type的类型?谢谢

    1) Content-Type: multipart/mixed
    它表明这封Email邮件中包含各种格式的MIME实体但没有具体给出每个实体的类型。

    2) Content-Type: multipart/alternative
    如果同一封Email邮件既以文本格式又以HTML格式发送,那么要使用Content-Type: multipart/alternative。这两种邮件格式实际上是显示同样的内容但是具有不同的编码。

    3) Content-Type: multipart/related
    用于在同一封邮件中发送HTML文本和图像或者是其他类似类型。



  • 查看QQ邮箱的html代码,<img moz-do-not-send="true" src="#">
    而126的html代码,<img moz-do-not-send="true" src="data:image/png;base64,iVBORw0KGgoA……>一推乱码应该是图片的编码
    确实是QQ邮箱直接将邮件过滤掉了,但是怎么才能让它不过滤呢?



  • [quote author=jerry79 link=topic=2762.msg9320#msg9320 date=1329799731]
    查看QQ邮箱的html代码,<img moz-do-not-send="true" src="#">
    而126的html代码,<img moz-do-not-send="true" src="data:image/png;base64,iVBORw0KGgoA……>一推乱码应该是图片的编码
    确实是QQ邮箱直接将邮件过滤掉了,但是怎么才能让它不过滤呢?
    [/quote]


    这个, 需要联系 马化腾....



  • 给你指个方向.

    自己用QQ给自己发一封带图片的邮件,然后查看源码. 再去修改对应的OE生成邮件代码. 以适应...



  • 这个我已经试过了,如果是普通嵌入图片发送,html代码是:
    <img src="/cgi-bin/viewfile?f=34D57382734C493C6B9B739D37DEA9B25394D2E36D714BC2E09A8B0535E93F9C35E486B8F07A45D5F44ED22863B7135D9407D05DD78DB1872BB69719F80A2CA4C816A3FB8D7D2E80CAE87E80B954F1F00009FF1F81E90C92&amp;mailid=ZL0821-vhNI0WAizNKRbkQL1TRKZ22&amp;sid=txpTW_pUg53eJw1C">
    但是我用模板发送邮件,如果不用base64,而是绝对地址的图片,也不行,如
    <img src="/home/myhome/image.png" width="431" height="96"/>
    收到的html代码确是如上的<img src="#">,好像就是图片根本没有随邮件发送过来。而且用绝对地址,连邮件客户端也看不到图片了,一直怀疑mako模板直接写<img>标签是否正确,但是找不到合适的参考。
    郁闷死了,我还在google……



  • 据我所知, 邮件中的图片, 一般不以 src="data: 方式存.. 你看看吧. 一般是会有个 cid 的....

    推荐你用 foxmail 发一封带内嵌图片的邮件, 然后把邮件另存为 .eml 文件, 再用文本编辑器打开看看...



  • PS: 如果你把邮件使用数字证书签名了.或者加密了. 我想QQ一定不会去检查里面的内容... 我猜是这样...


Log in to reply