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

Responder a