El 13 de noviembre de 2013 20:46, Ricardo Richardson Balcacer < richardson.balca...@gmail.com> escribió:
> Guillem, > > Realmente es el mismo código que expuse en el principio de esta > publicación, si quieres puedes hasta probarlo tu mismo. Una vez que > intentas referenciar dos campos diferentes One2Many a una clase externa que > tiene un campo Many2One en el momento que es presentado en la vista te va > aparecer los mismos objetos en ambos campos. > > La única solución que encontré, que funcione es declarar clases externas > diferentes y cada campo O2M tenga su propia clase externa. La solución que > plantea Raimon es de poner diferentes campos M2O en una clase externa; > asignar cada campo O2M a su campo respectivo en la clase externa. Al > intentar la solución de Raimon lo que ocurre es que la ventana que se > genera en cualquier O2M nuevo, me solicita el otro campo de la clase > externa, por lo que entendí es de poner alguna lógica que habilite el > 'required=False' dependiendo el O2M que se elija para así poder grabar el > registro. > > Es posible que esto ultimo funcione mi inconveniente viene a que me parece > un 'Hack' al core de Tryton para que eso funcione, el declarar dos clases > externas apartes es tan buena como esa solución. > A mi no me parece tan buena esa solución puesto que estás duplicando una estructura idéntica (una tabla) de la base de datos. > > Gracias, > Ricardo > > El miércoles, 13 de noviembre de 2013 15:08:40 UTC-4, Guillem Barba > escribió: >> >> >> El 13/11/2013 16:28, "Ricardo Richardson Balcacer" < >> richardso...@gmail.com> va escriure: >> >> > >> > Yo no recuerdo haber puesto 'required' en ningún momento, supongo que >> pudiera revisarlo, aunque no me parece por lo que he podido entender el ORM >> de Tryton funciona así primero son One2Many ambos campos. La definición del >> modelo establece en una entrada tal cual en la base de datos como aparece, >> la relación entre objetos es referencial a la llave del objeto maestro y la >> relación se establece por el tipo puesto explicito en la propiedad >> __name__, de tal forma que cuando se abre el objeto maestro se busca la >> relación entre los nombres '__name__' no en la relación de campos. Esto lo >> se porque al revisar la tabla me percate que Tryton no crea los dos campos >> que definí como 'One2Many' sino que aparecen en una tabla aparte >> referenciados por la llave del registro del objeto maestro. >> >> Sinceramente, no he entendido casi nada de este párrafo. >> >> Si haces un Pastebin (o el servicio similar que más te guste) con el >> código real que estás usando tal vez podamos encontrar alguna cosa que se >> nos está pasando por alto. Porque no tendría que ser tan complicado. >> >> Un One2Many es la relación inversa a un Many2one y REQUIERE siempre y >> explícitamente que se defina este Many2One en el modelo destino. No hay >> One2Many sin Many2One, y si el One2Many NO es funcional, el Many2One no >> puede ser funcional. >> Lo anterior no se aplica a la inversa (puede haber Many2One si One2Many y >> el One2Many puede ser funcional usando Many2One no funcional, como pasa con >> stock.move y stock.shipment). >> En todo lo anterior, donde pone Many2One también puede ser Reference. >> >> Un Many2One se convierte en una columna en la tabla del modelo con una >> Foreign Key hacia la tabla de destino. >> El One2Many no queda reflejado en las tablas de los modelos implicados. >> >> La única explicación ue le veo al comportamiento que explicas (aunque >> supongo que no será esto, por eso sugiero que nos muestres tu código) es >> que en los dos One2Many hayas puesto el mismo campo (M2O) como campo >> inverso. >> >> Salut! >> Guillem Barba >> > -- Jesús Martín Zikzakmedia SL Dr. Fleming, 28, baixos 08720 Vilafranca del Penedès ☏ 93 890 21 08