On 9/28/18 5:03 PM, Maicoly Guerrero wrote:
Buenos dias amig@s,
tengo un problema en una herencia:

Clase Padre:

     class CreatePurchase(Wizard):
         __name__ = 'first.something1'
        // data
         @staticmethod
         def _group_purchase_key(requests, request):
               return (
                 ('company', request.company),
                 /// mas data
               )

y en otro archivo tengo

     class CreatePurchase:
         __metaclass__ = PoolMeta
         __name__ = 'first.something1'
          @staticmethod
          def _group_purchase_key(requests, request):
           result =
          super(CreatePurchase,CreatePurchase)._group_purchase_key(
          requests,request)
          result += (('poa', request.poa), ('department',
          request.department))
          return result

y me arroja esto en consola:

     AttributeError: 'super' object has no attribute '_group_purchase_key'

Para heredar un método estatico lo tiense que hacer convertir a classmethod (de hecho en python ambos son equivalentes).

Tu código deberia ser:

           @classmethod
           def _group_purchase_key(cls, requests, request):
            result =
           super(CreatePurchase, cls)._group_purchase_key(
           requests,request)
           result += (('poa', request.poa), ('department',
           request.department))
           return result

Si estas en python3 usando super() te deberia funcionar sin problemas.

Un saludo,

--
Sergi Almacellas Abellana
www.koolpi.com
Twitter: @pokoli_srk

Responder a