odoo res.partner地址字段访问网站上的错误

时间:2016-11-15 17:50:43

标签: openerp odoo-website

我正在尝试在网站上显示地址字段,但它会出现访问错误。出于某种原因,我无法在网站上使用联系人小部件。

当我以公共用户身份访问该页面时,它会显示 500内部服务器错误。但如果我是管理员,一切正常。

在我的xml模板中,我写了以下内容:

<span t-field="event.address_id.city" groups="base.group_public"/>,
<span t-field="event.address_id.country_id.name" groups="base.group_public"/>

在ir.model.access.csv文件中,我写了以下内容:

access_res_partner,res.partner,base.model_res_partner,base.group_public,1,0,0,0

也尝试了

access_res_partner,res.partner,base.model_res_partner,,1,0,0,0

但它显示以下错误:

  

AccessError :( u&#39;由于请求操作无法完成   安全限制。请联系您的系统   管理员。\ n \ n(文档类型:res.partner,操作:读取)&#39;,   无)

     

呈现编译AST AccessError时出错:(u&#39;请求的操作   由于安全限制无法完成。请联系您的   系统管理员。\ n \ n(文档类型:res.partner,操作:   阅读)&#39;,无)模板:website_event.index路径:   /模板/ T / T / DIV / DIV [2] / DIV [2] / DIV [1] / UL / LI / DIV / DIV / DIV [3] / DIV / DIV [3] /跨度[1]   节点:,

我也在没有组的xml中尝试了这个,但结果是一样的:

<span t-field="event.address_id.city"/>,
<span t-field="event.address_id.country_id.name"/>

我该如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

试试这段代码。

trait Cleanable {
  def clean(): Unit
}

case class A(a: Int) extends Cleanable {
  override def clean(): Unit = println("cleaned A")
}

case class B(a: Int) extends Cleanable {
  override def clean(): Unit = println("cleaned B")
}

val cleanableStuff: List[(String, Cleanable)] = List(("clean", A(10)), ("donot_clean", B(10)))

def cleanAll(list: List[(String, Cleanable)]): Unit = {
  list.foreach {
    case ("donot_clean", v) => //Ignore 1st object
    case (_, v) => v.clean() //clean other objects 
  }
}

请确保您了解security section in the odoo documentation。在我看来,给 base.group_public 组提供对您的客户数据的一般读取访问权并不是一个好主意。