Greetings everyone,
Actually I’m using the trytond version 7.6, I found a possible bug in trytond. I was working and I encountered this error message when I opening a Many2One relation to party:
Traceback (most recent call last):
File "/site-packages/trytond/wsgi.py", line 97, in dispatch_request
return endpoint(request, **request.view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/protocols/dispatcher.py", line 44, in rpc
return methods.get(request.rpc_method, _dispatch)(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/wsgi.py", line 77, in wrapper
return func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/protocols/wrappers.py", line 206, in wrapper
result = func(request, pool, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/protocols/dispatcher.py", line 216, in _dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/model/modelsql.py", line 1252, in read
getter_results = field.get(
^^^^^^^^^^
File "/site-packages/trytond/model/fields/function.py", line 27, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/transaction.py", line 63, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/model/fields/function.py", line 174, in get
return dict((name, call(name)) for name in names)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/model/fields/function.py", line 174, in <genexpr>
return dict((name, call(name)) for name in names)
^^^^^^^^^^
File "/site-packages/trytond/model/fields/function.py", line 136, in call
return {
^
File "/site-packages/trytond/model/fields/function.py", line 137, in <dictcomp>
r.id: convert(method(r, name), name) for r in records}
^^^^^^^^^^^^^^^
File "/site-packages/trytond/model/fields/field.py", line 124, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/site-packages/trytond/modules/speco/party.py", line 232, in get_family_member
cursor.execute(str(family_members_query), (self.id, ))
File "/site-packages/trytond/backend/postgresql/database.py", line 78, in execute
cursor.execute(self, sql, args)
psycopg2.errors.SyntaxError: syntax error at or near "AS"
LINE 1: SELECT "a"."state" AS "state" FROM AS "a" WHERE ("a"."party...
^
I reviewed my custom function get_family_member and next to get the table of model the attribute _name of table is beening None.
Any change from last upgrade of tyrtond to declare models?, Anyone can help me?
This is my custom method:
@fields.depends('family_members')
def get_family_member(self, name=None):
def is_active(member_tuple):
state = member_tuple[0]
return state != 'excluded'
family_members = FamilyMembers.__table__()
cursor = Transaction().connection.cursor()
family_members_query = family_members.select(
family_members.state.as_('state'),
where=family_members.party == Literal('?')
)
cursor.execute(str(family_members_query), (self.id, ))
family_members_tuples = [record for record in cursor]
all_are_active = all(
is_active(member) for member in family_members_tuples)
if not all_are_active or not family_members_tuples:
return False
return True
Next to do
@fields.depends('family_members')
def get_family_member(self, name=None):
def is_active(member_tuple):
state = member_tuple[0]
return state != 'excluded'
family_members = FamilyMembers.__table__()
family_members._name = 'speco_family_members'
cursor = Transaction().connection.cursor()
family_members_query = family_members.select(
family_members.state.as_('state'),
where=family_members.party == Literal('?')
)
cursor.execute(str(family_members_query), (self.id, ))
family_members_tuples = [record for record in cursor]
all_are_active = all(
is_active(member) for member in family_members_tuples)
if not all_are_active or not family_members_tuples:
return False
return True
The problem is fixed.
Thanks for all