Flask Пользовательский метод SQLAlchemy - PullRequest
1 голос
/ 21 июня 2020

У меня есть модель Flask SQLAlchemy, и я хотел создать настраиваемый метод с именем «uuid» и использовать его в ответе API.

Это настраиваемый метод, который я хочу создать внутри модели. Где и как создать это в Flask модели?

def uuid():
    "br-%s", self.id

Вот текущая модель:

from app import db
from marshmallow import fields

class Build(db.Model):
    __tablename__ = 'builds'
    id = db.Column(db.Integer, primary_key=True)
    product = db.Column(db.String(200))
    # uuid = "build_<id_field>"

class BuildSchema(ma.Schema):
    class Meta:
        fields = ('id',
                  'uuid',
                  'product')

build_schema = BuildSchema()
    

1 Ответ

1 голос
/ 30 июня 2020

Один из способов сделать это - использовать встроенный @property декоратор :

from app import db
from marshmallow import fields

class Build(db.Model):
    __tablename__ = 'builds'
    id = db.Column(db.Integer, primary_key=True)
    product = db.Column(db.String(200))

    @property
    def uuid(self) -> str:
        return "br-%s" % self.id

class BuildSchema(ma.Schema):
    
    id = ma.fields.Integer()
    uuid = ma.fields.String()
    product = ma.fields.String()
...