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

Responder a