Obtener consultas de Base de Datos con decoradores o Many2ones busqueda de valores

Buenas tardes, foro, les escribo porque tengo una duda:

Trabajo en odoo V8 y window 8.

Estoy personalizando un proyecto el cual me debe generar reportes, lo primero es que, tengo un registro que realizo en una vista1 .xml, eso genera un Codigo de registro, luego desde otra vista .xml necesito llamar a ese registro y mostrar los datos almacenados en este caso en la Base de datos.

Estuve practicando con este decorador y con many2one

Actualmente estoy intentando con campos many2one y funciones con decorador @api.depends pero no e logrado de verdad obtener resultados favorables,  pareciera que no ejecutara el objetivo que quiero lograr, los many2one me muestran listas mas no un solo valor específicamente aqui un ejemplo:

 

from datetime import timedelta, datetime

from openerp import models,fields,api, osv

from openerp.tools.translate import _

import openerp.addons.decimal_precision as dp

 

 

class warehouse(models.Model): 

    _name = 'warehouse'

    _description = u'Clase warehouse'

    _rec_name = 'busc_pick'

 

    @api.one 

    @api.depends('consecutivo')

    def _obtener_pick(self):

        for rec in self:

            model = self.env['pickup']  # Llama objeto pickup

            pickup = model.browse([rec.event_id.id]) #  llama variable Many2one event_id contiene fechas

            rec.issued_by = pickup.issued_by #  Llamar issued_by contiene  nombre de usuario que realizo el proceso

################################################################

 # GENERAR BUSQUEDA -

#########################################################################

    consecutivo = fields.Many2one('pickup',_(u'consecutivo'),required=True) #campo clave ID que quiero ingresar para que realice el llamado de las demas variables 

    event_id = fields.Many2one('events', 'Evento',required=False, domain=[('eliminado','=',False)])  # Campo event

    issued_by = fields.Many2one('pickup',store=True,compute='_obtener_pick')  #camp0 donde hago llamado de la funcion decorada 

 

El detalle del campo many2one es que me muestra una lista de varios campos como puedo hacer para que me muestre solo el valor relacionado al codigo 'consecutivo' que se relaciona a ese conjunto de registros, de manera que no se observe como una vista tree sino como un campo individual en un formulario

En intentado con lo que ven, no se si se pueda realizar con otros métodos lo que yo quiero es buscar los registros relacionados a ese ID si por favor tienen un metodo haganmelo saber para aplicarlo. feliz tarde

JUAN FRANCISCO CARRASQUEL RAMIREZ
JUAN FRANCISCO CARRASQUEL RAMIREZ
8
| 0 0 0
Preguntado en 02-09-16 20:49
0
voto
2640 Vistas

Juan Francisco:

Eso lo puedes hacer usando domain en la vista. A tu campo Many2one le defines algo como lo que puedes ver en la línea 10 de éste código, que en el fondo hace lo que creo que estás intentando hacer, ya que en este caso, busca los giros asociados al partner, al cual se le está confeccionando la factura.:

https://github.com/odoo-chile/l10n_cl_partner_activities/blob/8.0/views/invoice_turn.xml

En donde los partner_ids deben estar limitados al partner_id sobre el que se está pivoteando.

En tu caso quizá sería domain="[('consecutivo', '=', consecutivo)]"

En donde el 'consecutivo' de la izquierda hace valor al Many2one que defines en tu modelo, y el consecutivo de la derecha (sin comillas) es el valor del consecutivo perteneciente al contexto de la vista (sin ver todo tu código).

Recomiento no usar el decorador api.one() ya que está discontinuado. Puede ser contraproducente y te puede dar algún comportamiento indeseado en el entorno en el que estás trabajando. Igual, yo mismo en mi código tengo aún varios api.one() que quitar o reemplazar por api.multi().

También recomiendo que tu consecutivo (Many2one) sea definido como 'consecutivo_ids', para seguir una regla parecida a lo que hace Odoo, puesto que en realidad, representa una serie de identificadores.

 

Blanco Martín & Asociados Chile
Blanco Martín & Asociados
1737
| 5 2 5
Respondido en 07-09-16 20:53
0
voto

Su respuesta

Trate por favor de dar una respuesta sustancial. Si quiere comentar en la pregunta o la respuesta, sólo use la herramienta de comentarios. Recuerde que siempre puede revise sus respuestas - no hay necesidad de responder dos veces la misma pregunta. También no olvide votar - ¡ayuda realmente a seleccionar las mejores preguntas y respuestas!

Realizar una pregunta

Mantener informado

Sobre este foro 

Esta comunidad es para profesionales y entusiastas de nuestros productos y servicios.

Lea las directrices

Herramientas de las preguntas

35 seguidor(es)

Estadísticas

Preguntado: 02-09-16 20:49
Visto: 2640 veces
Última actualización: 07-09-16 20:53