1つの奇妙なことに気づきました。計算メソッドを作成してcreate_date
いて、フィールドを使用する必要がありましたが、しようとすると、フィールドを使用し、文字列を使用する必要がstrptime
あるというエラーが発生しました。bool
メソッドから印刷すると、 と出力されましFalse
た。しかし、データベースに入り、create_date を取得するために SQL クエリを作成すると、通常の日時が表示されました。
さらに興味深いのは、create_date
ビューで定義すると型にcreate_date
なりstr
、print を呼び出したときに datetime を確認できることです。このように意図されているか(およびその理由)、または何らかのバグであるかを誰かが知っていますか?
これらの結果を生成したコード:
from openerp import models, fields
from openerp.api import one, depends
class crm_lead(models.Model):
_inherit = 'crm.lead'
stage_deadline = fields.Datetime('Stage Deadline', compute="_compute_stage_deadline")
@one
@depends('section_id.stage_config_ids', 'stage_id', 'create_date')
def _compute_stage_deadline(self):
print type(self.create_date) #prints 'bool' if this field is not defined in view. Prints 'str'
self.stage_deadline = datetime.now()
このビューを追加すると:
<?xml version="1.0"?>
<openerp>
<data>
<!-- CRM Lead Form View -->
<record model="ir.ui.view" id="crm_case_form_view_leads_inherit">
<field name="name">CRM - Leads Form - Inherit</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_leads"/>
<field name="arch" type="xml">
<field name="priority" position="after">
<field name="create_date" invisible="1"/>
</field>
</field>
</record>
</data>
</openerp>
するとタイプcreate_date
になりstr
ます。このビューを削除すると、bool
タイプが元に戻ります。したがって、ビューで定義されていない場合、この方法では create_date を使用できません。