2017-11-03 3 views
1

Ich brauche ein Feld zu beziehen, die auf einem One2Many Feld eines anderen Modells ist, so weit ich habe wie diese versucht:Relate One2Many Feld, auf einem bereits im Zusammenhang ein - Odoo v8

field_many = fields.Many2one('other.model', string="Many field") 
field_related = fields.Float(string="My field", related="field_many.one2manyfield.field") 

Aber es wirft mich:

Traceback (most recent call last): 
File "werkzeug\serving.py", line 177, in run_wsgi 

File "werkzeug\serving.py", line 165, in execute 

File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\service\server.py", line 294, in app 
return self.app(e, s) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\service\wsgi_server.py", line 216, in application 
return application_unproxied(environ, start_response) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\service\wsgi_server.py", line 202, in application_unproxied 
result = handler(environ, start_response) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\http.py", line 1299, in __call__ 
return self.dispatch(environ, start_response) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\http.py", line 1273, in __call__ 
return self.app(environ, start_wrapped) 
File "werkzeug\wsgi.py", line 579, in __call__ 

File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\http.py", line 1444, in dispatch 
ir_http = request.registry['ir.http'] 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\http.py", line 355, in registry 
return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\modules\registry.py", line 339, in get 
update_module) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\modules\registry.py", line 370, in new 
openerp.modules.load_modules(registry._db, force_demo, status, update_module) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\modules\loading.py", line 357, in load_modules 
registry.setup_models(cr) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\modules\registry.py", line 194, in setup_models 
model._setup_fields(cr, SUPERUSER_ID) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\api.py", line 268, in wrapper 
return old_api(self, *args, **kwargs) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\api.py", line 372, in old_api 
result = method(recs, *args, **kwargs) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\models.py", line 3010, in _setup_fields 
field.setup(self.env) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\fields.py", line 468, in setup 
self._setup_related(env) 
File "C:\Program Files (x86)\Odoo 8.0-20170914\server\openerp\fields.py", line 514, in _setup_related 
field = recs._fields[name] 
    KeyError: 'one2manyfield' 

Irgendwelche Ideen, wie man das erreicht?

Antwort

2

Aber Sie erstellen ein verwandtes Feld, das in one2many Feld? !! nicht vergessen o2m kann mehr als einen Datensatz haben, so odoo wird verwirrt sein, wenn Sie versuchen, erhaltenWert.

o2m_field.some_field # witch record to access [like singleton error] 

aber der Fehler, dass odoo zeigt nicht ein Feld namens one2manyfield in other.model ist es ein verwandter Bereich finden.

wenn ich denke, odoo kann es nicht finden, weil standardmäßig verwandten Feld nicht in der Datenbank gespeichert sind. aber das Speichern eines verwandten Felds, das one2many Feld ist nicht nur durch Hinzufügen store=True Ich habe es nicht versucht, aber wie wir wissen, o2many Feld sollte eine many2one in anderen Modell haben.

so ist es besser zu erklären, was Sie wollen, mit Beispiel und ich denke, Sie müssen stattdessen Kraft des berechneten Feldes verwenden.

+0

Hallo Master, Danke, ich glaube, ich habe meinen Code abgeholt, lol, aber ich danke Ihnen sehr, sowieso, ein anderes Problem und ich werde eine neue Frage eröffnen. – NeoVe

+1

Dies ist, wie Sie lernen immer etwas tun und sehen, ob es funktioniert und ich bin kein Meister, ich begann odoo seit einem Jahr zu verwenden. Odoo ist einfach zu lernen und ich sehe immer noch neue Dinge jeden Tag. Aber ich werde Meister einige sagen Inchallah – Cherif

+0

Ja, das ist richtig :) vielen Dank, Sie sind sehr nett – NeoVe

Verwandte Themen