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 >>> >> >> >> >