ok, solucionado. Efectivamente crea un address vacio

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 
<http://www.google.com/url?q=http%3A%2F%2Faddress_new.name&sa=D&sntz=1&usg=AFQjCNFdP9pu4e_JI_jZrHTY7YvW91ob8w>
 
= 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 <[email protected] 
> <javascript:>> 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 <[email protected]>: 
>>> > 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
> [email protected] <javascript:>
>  

Responder a