<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Odoo的Binary字段如何设置默认值？]]></title><description><![CDATA[<p dir="auto">Odoo的Binary字段默认保存的是Base64转码后的字符串。那么我们该如何为Binary字段设置默认值呢？比如一个默认的图片。答案当然是将图片文件的内容用Base64转码后赋给这个字段的<code>default</code>属性。</p>
<p dir="auto">方法1 :</p>
<ol>
<li>比如你可以把一个图片用在线工具转码为Base64格式字符串：</li>
</ol>
<pre><code>data:image/png;base64,iVRORw0KGgoBBBNSUhEUgAAAAEAAAABCAIAAACQd1PeAAAA.....................
</code></pre>
<ol start="2">
<li>去掉头部的<code>data:image/png;base64,</code>信息，把剩余的内容保存为默认值</li>
</ol>
<pre><code>DEFAULT_IMG = 'iVRORw0KGgoBBBNSUhEUgAAAAEAAAABCAIAAACQd1PeAAAA.....................'

class MyModel(models.Model):
    _name = 'my.model'

    field_binary = fields.Binary(default=DEFAULT_IMG)
</code></pre>
<p dir="auto">方法2:</p>
<ol>
<li>
<p dir="auto">将图片文件保存在模块目录下，比如：<br />
<code>/my_module/static/img/my_image.png</code></p>
</li>
<li>
<p dir="auto">设置默认值：</p>
</li>
</ol>
<pre><code class="language-python">import base64
from odoo import models, fields
from odoo import modules

def get_default_img():
    with open(modules.get_module_resource('my_module', 'static/img', 'my_image.png'),
              'rb') as f:
        return base64.b64encode(f.read())

class MyModel(models.Model):
    _name = 'my.model'

    field_binary = fields.Binary(default=get_default_img())
</code></pre>
]]></description><link>https://odoo.net.cn/topic/5693/odoo的binary字段如何设置默认值</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 14:23:41 GMT</lastBuildDate><atom:link href="https://odoo.net.cn/topic/5693.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Nov 2019 01:59:48 GMT</pubDate><ttl>60</ttl></channel></rss>