base
"id","country_id:id","name","code"
state_au_1,au,"Australian Capital Territory","ACT"
state_au_2,au,"New South Wales","NSW"
state_au_3,au,"Northern Territory","NT"
state_au_4,au,"Queensland","QLD"
...
id
是外部标识符。它可用于引用记录 (不知道其数据库内标识符)。country\_id:id
使用其外部标识符指代国家/地区。name
是国家的名称。code
是国家的代码。
这三个字段在模型中定义。res.country.state
按照惯例,导入数据的文件位于模块的文件夹中。当数据 与安全性相关,它位于文件夹中。当数据与 视图和操作(我们稍后将介绍),它位于文件夹中。 此外,所有这些文件都必须在文件内的列表中声明。我们的示例文件是在基本模块的清单中定义的。data``security``views``data``\_\_manifest\_\_.py
另请注意,数据文件的内容仅在安装模块或 更新。
警告
数据文件按照它们在文件中的顺序按顺序加载。 这意味着,如果 data 引用 数据 ,则必须确保在加载之前加载 。__manifest__.pyABBA
对于国家/地区 这是因为各州指的是国家/地区。
为什么这一切对安全很重要?因为模型的所有安全配置都是通过加载的 数据文件,我们将在下一节中看到。
访问权限
参考:与此主题相关的文档可在访问权限中找到。
注意
目标:在本节末尾,不应再出现以下警告:
WARNING rd-demo odoo.modules.loading: The models ['estate.property'] have no access rules...
当模型上没有定义访问权限时,Odoo将确定没有用户可以访问数据。 它甚至在日志中通知:
WARNING rd-demo odoo.modules.loading: The models ['estate.property'] have no access rules in module estate, consider adding some, like:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
访问权限被定义为模型的记录。每 访问权限与模型、组(或全局的无组)相关联 access) 和一组权限:创建、读取、写入和取消链接2.这种访问 权限通常在名为 的 CSV 文件中定义。ir.model.access``ir.model.access.csv
下面是我们之前的一个例子:test\_model
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_test_model,access_test_model,model_test_model,base.group_user,1,0,0,0
id
是外部标识符。name
是 的名称。ir.model.access
model_id/id
指访问权限适用的模型。标准参考方式 to the model 是 ,其中 是模型的 替换为 .看起来很麻烦?确实是…model\_<model\_name>``<model\_name>``\_name``.``\_
group\_id/id
指访问权限适用的组。perm\_read,perm\_write,perm\_create,perm\_unlink
:读取、写入、创建和取消链接权限
锻炼
添加访问权限。