No me he metido todavía con flask-trytond, pero la librería requests es uno 
de los mejores amigos que se pueden tener para hacer peticiones http 
siempre:

http://docs.python-requests.org/en/master/user/quickstart/#make-a-request

No se su flask-trytond tiene ya métodos implementados, sino con esta lib 
pueds hacer cualquier petición, manejar cabeceras, gestionar params, etc

El martes, 16 de enero de 2018, 7:11:59 (UTC+1), raimonesteve escribió:
>
>
>
> El dia 16 gen. 2018 1:51 a. m., "Josias Pérez" <jep...@gmail.com 
> <javascript:>> va escriure:
>
> Le he agregado la siguiente línea a la ruta 
> @app.route('/add', methods=['GET', 'POST','PUT'])
>
> Pero sigue desplegando la siguiente salida en el log 
>
> uwsgi[7071]: File 
> "/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
> line 263, in execute
> uwsgi[7071]: self._pq_execute(self._query, conn._async)
> uwsgi[7071]: File 
> "/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
> line 696, in _pq_execute
> uwsgi[7071]: self._pq_fetch()
> uwsgi[7071]: File 
> "/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
> line 757, in _pq_fetch
> uwsgi[7071]: raise self._conn._create_exception(cursor=self)
> uwsgi[7071]: InternalError: cannot execute nextval() in a read-only 
> transaction
>
>
> La llamada la realitzas mediatea get, no post o put. Usa un formulario por 
> ejemplo. 
>
>
> Creo que es un problema con permisos dentro de tryton, pero no sé como 
> otorgarle los mismos. 
>
> El lunes, 15 de enero de 2018, 17:03:09 (UTC-6), raimonesteve escribió:
>
>>
>>
>> 2018-01-15 22:11 GMT+01:00 Josias Pérez <jep...@gmail.com>:
>>
>>> Hola amigos,
>>>
>>> Estoy trabajando en una app desde flask para enviar datos a tryton como 
>>> backend. 
>>>
>>> Tengo el siguiente código: 
>>>
>>> from flask import render_template, flash, redirect, url_for
>>> from app import app
>>> from app import tryton 
>>>
>>> User = tryton.pool.get('res.user')
>>> Party = tryton.pool.get('party.party')
>>>
>>> @tryton.default_context
>>> def default_context():
>>> return User.get_preferences(context_only=True)
>>>
>>> @app.route('/admin')
>>> @tryton.transaction()
>>> def hello():
>>> user, = User.search([('login', '=', 'admin')])
>>> return '%s, Hello World!' % user.name
>>>
>>> @app.route('/add')
>>> @tryton.transaction()
>>> def add():
>>> party1, = Party.create([{
>>>                     'name': 'Party 1',
>>>                     }])
>>> return "Done"
>>> #InternalError: cannot execute nextval() in a read-only transaction
>>>
>>> La ruta de /admin funciona bien, y devuelve el valor esperado, pero el 
>>> ruta de add me devuelve InternalError: cannot execute nextval() in a 
>>> read-only transaction. 
>>>
>>
>>> ¿Cuál sería la forma correcta de enviar datos a tryton desde una 
>>> aplicación externa en flask?
>>>
>>
>> si usas el GET, la transación es sólo lectura.
>> si deseas agregar datos, debes hacer un POST o PUT.
>>
>> http://flask.pocoo.org/docs/0.12/quickstart/
>>  
>>
>>> Gracias desde ya 
>>>
>>
>>
>>
>

Responder a