为什么OpenErp在postgresql数据库表中创建一些默认字段

时间:2014-03-13 10:40:30

标签: openerp openerp-7 openerp-8

任何人都可以解释为什么OpenErp在posgresql数据库表中创建一些默认值 在OpneErp模块中创建新对象??

email_template模块 - >中 email.template 对象 - >创建 一些默认字段 像..

id, create_uid, create_date, write_date

用描述

解释每个字段

来自基本模块

中的Openerp trunk-Server,而不是..

 res_users and res_partner

在PostgreSQL数据库表中没有创建这种字段

我的问题是为什么创建默认字段以及为什么不在某些基本模块中使用默认字段?

2 个答案:

答案 0 :(得分:2)

仔细检查以下字段已存在于基本模块表res_usersres_partner

id, create_uid, create_date, write_date, write_uid

每当您创建新表时,您必须继承osv.osv基类。

  

示例:我正在创建项目表并从osv.osv继承,因此该表会自动创建额外的五列 id,create_uid,create_date,write_date,write_uid 另外,您还可以定义 project_name 列。共创建了6个六列。

project.py

from openerp.osv import osv, fields

class My_project(osv.osv):
    _name = 'my.project'
    _description = 'My project'
    _columns = {
         'project_name':fields.char('Project Name',size=30),
    }

优势

  1. 要知道哪个用户使用时间戳(日期时间)创建此表。
  2. 自动递增ID字段。所以这个列的主键,
  3. 哪个用户(write_uid)是更新表行,同时还存储时间戳更新到write_date列。

    因此,上述原因有助于我们跟踪时间用户ID


  4. 如果设置 _log_access = False 属性,则不会在SQL表中创建四个字段: create_uid,create_date,write_uid,write_date

    project.py

    from openerp.osv import osv, fields
    
    class My_project(osv.osv):
        _name = 'my.project'
        _description = 'My project'
        _log_access = False
        _columns = {
             'project_name':fields.char('Project Name',size=30),
        }
    

    现在您只检查为此表创建的2列。

    希望这对你有帮助!

答案 1 :(得分:2)

您必须请验证您的数据库包,res_usersres_partners中已包含以下字段。

和字段:

  • id:每个特定记录的索引号序列 表

  • create_uid:创建特定记录的用户ID。

  • create_date:记录的创建日期。

  • write_uid:上次更新特定记录的用户ID

  • write_date:记录更新日期