2015-05-05 8:36 GMT+02:00 Guillem Barba Domingo <guillemba...@gmail.com>: > 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.
Esto era en Open :D http://hg.tryton.org/modules/party/file/a426a130de25/party.py#l105 > > 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 -- Albert Cervera i Areny Tel. 93 553 18 03 @albertnan www.NaN-tic.com