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
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 <[email protected] <javascript:>>:
>
>> 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
>>
>
>
>