Многоразовые операции CRUD с Flask RestPlus - PullRequest
0 голосов
/ 06 декабря 2018

Я новичок в python и в настоящее время использую Flask rest-plus для предоставления базовых операций CRUD и документации по разным ресурсам для различных ресурсов.

В настоящее время я занимаюсь

api = DTO.api
_response = DTO.response
_response_list = DTO.response_list
@api.route('/')
class SomeResourcetList(Resource):
    @api.marshal_with(_response_list)
    def get(self):
      return some_list_response

    @api.marshal_with(_response)
    def post(self):
      return "Object created"

@api.route('<equipment_id>')
class SomeResource(Resource):
    @api.marshal_with(_response)
    def get(self):
      return some_response_object

    @api.marshal_with(_response)
    def put(self):
      return some_updated_response

    def delete(self):
      return "Some delete response

Все вышеперечисленное работает нормально и предоставляет CRUD для ресурса / сущности

Что я хочу: Я хочу поместить выше 2 классов в BaseClass, чтобы я мог наследовать свойкласс ресурсов из них и все основные операции CRUD уже включены (чтобы сохранить код сухим) их.но при этом я попадаю в ситуацию, когда внутренний класс не может получить доступ к переменным внешнего класса, в моем случае это api Есть ли способ, которым я могу достичь этого?

class BaseController:
  def __init__(self, resource = 'equipment'):
    self.__Resource = resource
    # initialize api from child object
    self.api = PersonDTO.api

  @api.route('/')
  class SomeResourcetList(Resource):
    @api.marshal_with(_response_list)
    def get(self):
      return some_list_response

    @api.marshal_with(_response)
    def post(self):
      return "Object created"

  @api.route('<equipment_id>')
  class SomeResource(Resource):
      @api.marshal_with(_response)
      def get(self):
        return some_response_object

Есть ли какое-либо решение для вышеуказанной проблемы (в которой мы можем получить доступ к переменным внутри внутренних классов) или есть еще одна работа?

...