2015-01-17 1 views
3

Я новичок в Odoo (openERP) и python. У меня есть http.Controller, в котором я пытаюсь получить шаблон, который должен содержать некоторые объекты из базы данных openERP, а точнее fleet_vehicle_log_fuel_obj. Обычно метод self.pool.get() должен делать трюк, но в контроллере он не работает.пул для объектов Odoo из класса http.Controller (python)

Я пытаюсь отправить некоторые объекты клиенту и обработать их с помощью javascript.

Вот мой контроллер:

import json 
from openerp import SUPERUSER_ID, pooler 
from openerp.addons.web import http 
from openerp.addons.web.http import request 


class google_map(http.Controller): 

@http.route(['/google_map'], type='http', auth="public", website=True) 
def google_map(self, *arg, **post): 
    cr, uid, context = request.cr, request.uid, request.context 
    fleet_vehicle_log_fuel_obj = self.pool.get('fleet_vehicle_log_fuel'); 
    #fleet_vehicle_log_fuel_obj = pool.get('fleet_vehicle_log_fuel') 
    ids = fleet_vehicle_log_fuel_obj.search(cr, uid, []) 
    return request.website.render("fleet.google_map", json.dumps(ids)) 

ошибка, я получаю «google_map» объект не имеет атрибута «пула». Как я могу получить все объекты определенного типа и отправить их клиенту?

+0

Вместо '' использования self.pool.get' request.registry' , – Zety

ответ

0

Я не проверял это, но попробуйте добавить к импорту:

импорта openerp.pooler в Pooler

Затем используйте код

osv_pool = pooler.get_pool (dbname)

osv_pool.get (model)

Я получил это от openerp/osv/osv.py

+0

Спасибо за ответ, я больше не могу это проверить, поскольку я работаю над чем-то другим. Ура! –

3

Я знаю, что я прибыл слишком поздно, но может быть, это поможет кому-то.

http библиотека позволяет получить доступ к модели из контроллера, так что вы должны написать:

import openerp.http as http 

fleet_vehicle_log_fuel_obj = http.request.env['fleet_vehicle_log_fuel'] 

И тогда вы будете иметь возможность применять любой метод ORM с fleet_vehicle_log_fuel_obj.

1

Попробуйте это:

pool = request.registry 
model_obj = pool['your.model'] 

или

model_obj = request.registry['your.model'] 

Надежда это поможет вам ...