джанге, чтобы результат в namedtuple:
def namedtuplefetchall(cursor):
"Return all rows from a cursor as a namedtuple"
desc = cursor.description
nt_result = namedtuple('Result', [col[0] for col in desc])
return [nt_result(*row) for row in cursor.fetchall()]
потом этот результат через селери попадает в серилайзер drf
cursor.execute(ROW_SQL, dict(param))
results = namedtuplefetchall(cursor)
return results
......
serializer = PathResultSerializer(results, many=True)
......
и в сериалайзере
def get_field(self, obj):
f_q =Model.objects.get(id=obj.obj_id)
.....
И в python36 работает, а в 37 говорит, что obj это dict и "dict' object has no attribute obj_id". В чем может быть проблема?
еще актуально?
Обсуждают сегодня