El 04/05/2015 23:35, "Antonio Roncero" <ronc...@gmail.com> va escriure: > > ok, solucionado. Efectivamente crea un address vacio
Solo como aclaración; no es Tryton servidor el que crea una dirección al crear el tercero sino el cliente Tryton, que como el formulario del tercero tiene definido el campp addresses para que se muestre en modo formulario, tiene este efecto. Proteus emula _a todos los efectos_ el comportamiento del cliente. > Aquí el código funcional > party = Party() > party.name = partner.name > party.vat_number = 'XXX...XX' > party.vat_country = 'XX' > print partner.name > first = True # flag para detectar si es el primero > > for address in partner.address: # con el debuger solo entra una vez pero crea dos direcciones > address_new = Address() > address_new.name = address.name > address_new.street = address.street > .... > if first: > party.address[0] = address_new > first = False > else: > party.addresses.append(address_new) > party.save() > > > > > El lunes, 4 de mayo de 2015, 21:45:03 (UTC+1), Karla Stenger escribió: >> >> >> >> El 4 de mayo de 2015, 14:56, Antonio Roncero <ron...@gmail.com> escribió: >>> >>> Gracias Raimon, >>> >>> pero la asignacion party.addresses = address_news lanza una excepcion de "attribute error" >>> >>> El lunes, 4 de mayo de 2015, 18:36:27 (UTC+1), raimonesteve escribió: >>>> >>>> 2015-05-04 19:26 GMT+02:00 Antonio Roncero <ron...@gmail.com>: >>>> > Hola, >>>> > >>>> > estoy usando proteus en un script para importar terceros. El tema es que >>>> > cuando genero un tercero que solo tiene una dirección, en tryton me aparecen >>>> > dos y si tiene dos, me aparecen tres. >>>> > >>>> > Esta es la parte involucrada de codigo >>>> > >>>> > party = Party() >>>> > party.name = partner.name >>>> > party.vat_number = 'XXX...XX' >>>> > party.vat_country = 'XX' >>>> > print partner.name >>>> address_news = [] >>>> > for address in partner.address: # con el debuger solo entra una vez pero >>>> > crea dos direcciones >>>> > address_new = Address() >>>> > address_new.name = address.name >>>> > address_new.street = address.street >>>> address_news.append(address_new) >>>> > .... >>>> party.addresses = address_news >>>> > party.save() >>>> > >>>> > Alguna idea? gracias >>>> >>>> nota: >>>> sin testear >>>> >>>> Raimon >> >> >> Hola, >> cuando estuve con eso descubrí que party.addresses tiene un elemento vacío desde el momento en que se hace party.save() >> >> Ahora, no logro entender si lo que te sucede es que te crea una address _duplicada_ (en cuyo caso mi descubrimiento no sirve de nada) o simplemente una address extra _vacía_. >> >> Si el caso es el segundo, es muy sencillo modificar la address vacía, o si ves que la address ya no está vacía, crear una nueva (en caso que tengas una party con mas de una address). >> >> Ojala te sirva de algo, >> Saludos, >> Karla. >> >> -- >> ------------------------- >> Karla Mª Stenger Sábat >> karla....@gmail.com