El dia 16 gen. 2018 1:51 a. m., "Josias Pérez" <jep...@gmail.com> 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 >> > > >