2016-06-14 5 views
-1

У меня есть кусок коды для выборки данных, но он не работаеткак извлекать данные из базы данных в odoo 9

ого файл

class group_js(osv.osv): 
    _name = "group_js" 
    _description = "Group JS" 

    _columns={ 
     'id': fields.integer('ID', readonly=True), 
     'name': fields.char('Purpose', required=True, select=1), 
     'js' : fields.text('Javascript',required = True , index=True,store=True), 
     'active' : fields.boolean('Active'), 
     'group_id': fields.many2many('res.groups', 'js_group_rel', 'js_group_id', 'group_id', string='Groups'), 
    } 
    _sql_constraints = [ 
    ('name_uniq', 'unique (name)', 'The name of the Javascript available , You must change your javascript name or check the javascript code may available !!!') 
    ] 

    def get_record(self,cr,uid,context=None): 
    get_obj=self.pool.get('group_js') 
    user_ids = get_obj.browse(cr, uid,uid,[]) 
    return user_ids.to_JSON() 

    def to_JSON(self,cr,context=None): 
    return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) 
+0

Добро пожаловать в StackOverflow _ "Это не работает" _ недостаточно информации. Вы должны объяснить, что именно происходит, и предоставить любые сообщения об ошибках и трассировку стека. Пожалуйста, посетите [помощь], а также прочитайте [ask]. –

+0

Что ты пытаешься здесь и что не работает? –

+0

thanx @ Bazzinga, Jim Garrison, именно я хочу получить данные из базы данных в odoo, поэтому я следую за функцией get_record(), но функция ничего не возвращает. – Debasish

ответ

0

Просмотр взять курсор, пользователь, ид, контекст

Для идентификаторов вы, во-первых поиска в модели с помощью пустого домена [].

попробовать этот способ:

def get_record(self,cursor,user,context=None): 
    get_obj=self.pool.get('group_js') 
    domain=[] 
    ids = get_obj.search(cursor, user,domain) 
    user_ids = get_obj.browse(cursor, user,ids,context) 
    return user_ids.to_JSON() 

ИЛИ таким образом

def get_record(self,cursor,user,context=None): 
    get_obj=self.pool.get('group_js') 
    domain=[] 
    ids = get_obj.search(cursor, user,domain) 
    user_ids = get_obj.read(cursor, user,ids,[],context) 
    return user_ids 

Редакцией: о том, как получить имя группы вместе с идентификатором

Как group_id это many2many поля так в в этом случае у вас будет browse запись, как указано ниже, и обновите группу group_id:

group_obj = self.pool.get('res.groups') 
def get_id_name(group_id): 
    res =group_obj.browse(cursor, user,group_id) 
    return res.id,res.name 
user_ids[0]['group_id']=map(lambda group_id:get_id_name(group_id),user_ids[0]['group_id']) 

Теперь этот метод будет выглядеть следующим образом:

def get_record(self,cursor,user,context=None): 
    get_obj=self.pool.get('group_js') 
    domain=[] 
    ids = get_obj.search(cursor, user,domain) 
    user_ids = get_obj.read(cursor, user,ids,[],context) 
    group_obj = self.pool.get('res.groups') 
    def get_id_name(group_id): 
     res =group_obj.browse(cursor, user,group_id) 
     return res.id,res.name 
    user_ids[0]['group_id']=map(lambda group_id:get_id_name(group_id),user_ids[0]['group_id']) 
    return user_ids 
+0

thanx @Sharma, он работает на меня. но у меня немного путаница, это не показывает имена групп, которые мы назначаем в моей форме. имя поля - ** group_id ** – Debasish

+0

'group_id: Array [3] 0: 2 1:10 2:12 длина: 3' в этом формате название группы. вместо имени группы это 2,10,12 будет показывать. 2 будет отображаться для Администрирования/Права доступа, 10 будет отображаться для Sales/Manager, а 12 будет отображаться для других групп Extra Rights/Portal. – Debasish

+0

use read, get_obj.read, проблема может быть решена – prakash

Смежные вопросы