2016-12-17 1 views
2

Ich habe ein benutzerdefiniertes Modul erstellt, um einige Felder in Partner-Daten hinzuzufügen. Alles scheint gut zu funktionieren, aber keine Admin-Benutzer können viele2 Felder nicht bearbeiten. Es zeigt die folgende Meldung (als ob alle Berechtigungen Konfigurationen mit diesem Modell falsch waren):AccessError, wenn Benutzer viele2one Feld in benutzerdefiniertem Modul bearbeiten

enter image description here

Nach tun, was Sie gefragt, das ist, was passiert:

Dies ist der Fehler, den ich bekommen :

Exception: Fall\xf3 el m\xf3dulo cargando cant_neg_dir: no se pudo procesar el archivo cant_neg_dir/security/ir.model.access.csv: Line 1 : No se han encontrado registros coincidentes para id. externo 'group_name_test_user' en el campo 'Object' 

Und das ist, was ich in meinen Dateien haben:

ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 
access_sector_user,sector.user,group_name_test_user,base.group_user,1,1,1,1 

cant_dir_security.xml

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data noupdate="0"> 
     <record model="ir.module.category" id="module_category_name_test"> 
      <field name="name">Management</field> 
      <field name="sequence">7</field> 
     </record> 
     <record id="group_name_test_user" model="res.groups"> 
      <field name="name">User</field> 
      <field name="category_id" ref="module_category_name_test"/> 
      <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> 
     </record> 
     <record id="group_name_test_manager" model="res.groups"> 
      <field name="name">Manager</field> 
      <field name="category_id" ref="module_category_name_test"/> 
      <field name="implied_ids" eval="[(4, ref('group_name_test_user'))]"/> 
      <field name="users" eval="[(4, ref('base.user_root'))]"/> 
     </record> 
    </data> 
</openerp> 

cant_neg_dir.py

import openerp 
from openerp.osv import fields, osv, orm 
from openerp import models 


class poligono(models.Model): 
    _name = "poligono" 
    _rec_name= "poligono_name" 
    _columns = { 
     'poligono_name': fields.char('Polígono', required=True), 
} 

class sector(models.Model): 
    _name = "sector" 
    _rec_name= "sector_name" 
    _columns = { 
     'sector_name': fields.char('Sector', required=True), 
} 

class municipio(models.Model): 
    _name = "municipio" 
    _rec_name= "municipio_name" 
    _columns = { 
     'municipio_name': fields.char('Municipio', required=True), 
} 

Nochmals vielen Dank für Ihre Hilfe.

Grüße.

+0

Kann jemand hier helfen? –

Antwort

1

Sie müssen Sicherheitsberechtigungen für neue Objekte erteilen.

Wir können es über Code tun. Zum Beispiel:

access_sector,sector.user,model_sector,base.group_user,1,1,1,1 

Weitere Details security/ir.model.access.csv und Odoo Security Documentation.

EDIT

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 
access_sector,sector.user,model_sector,base.group_user,1,1,1,1 

EDIT

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 
access_sector_user,sector.user,your_module_name.group_name_test_user,base.group_user,1,1,1,1 

Und Stellen Sie sicher, Openerp.py-Datei wird aussehen wie folgende Position Dateiname

cant_dir_security.xml 
ir.model.access.csv 
+0

Vielen Dank für Ihre schnelle Antwort! Ich verstehe das nicht ... Muss ich das zu meinem .py Modellcode hinzufügen? –

+0

Nein. Sie müssen einen Ordnernamen mit * security * erstellen und darin * ir.model.access.csv * erstellen und einen Antwortcode eingeben. Vergessen Sie nicht, die erwähnte Datei in * __ openerp __. Py * zu erwähnen. Ich habe im gegebenen Link sehr deutlich geantwortet. Sie müssen nur die Zeile mit der beantworteten Zeile ändern. –

+0

Vielen Dank für Ihre Hilfe Odebra, aber jetzt bekomme ich Fehler in Zeile 1, wenn ich das Modul installiere. –

Verwandte Themen