-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
Hello sir, demo code as follows:
from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint
from sqlalchemy.orm import relationship
from marshmallow import fields
from src.base.base_model import BaseModel, BaseModelSchema
from src.role.models import RoleBase
class User(BaseModel):
__tablename__ = 'user'
__searchable__ = ['username', 'email']
__table_args__ = (
UniqueConstraint('username', 'is_deleted', name='uq_username_deleted'),
)
id = Column(Integer, primary_key=True)
username = Column(String(20), nullable=False)
password = Column(String(255), nullable=False)
name = Column(String(255), nullable=True)
email = Column(String(50), nullable=True)
sex = Column(Integer, nullable=True)
phone = Column(String(20), nullable=True)
role_id = Column(Integer, ForeignKey("role.id"), nullable=False)
role = relationship("Role", backref="user_role")
class UserBase(BaseModelSchema):
class Meta:
model = User
load_instance = True
id = fields.Integer(dump_only=True)
username = fields.String(required=True)
password = fields.String(required=True, load_only=True)
name = fields.String()
email = fields.String()
role_id = fields.Integer(required=True)
phone = fields.String()
sex = fields.Integer()
role = fields.Nested(RoleBase)
class UserRead(UserBase):
pass
class UserToken(BaseModelSchema):
user_id = fields.Integer(dump_only=True)
token = fields.String(dump_only=True)
username = fields.String(dump_only=True)
class UserPagination(BaseModelSchema):
total = fields.Integer(dump_only=True)
page = fields.Integer(dump_only=True)
items_per_page = fields.Integer(dump_only=True)
items = fields.List(fields.Nested(UserRead))
current_total = fields.Integer(dump_only=True)
from sqlalchemy import Column, Integer, String
from src.base.base_model import BaseModel, BaseModelSchema
from marshmallow import fields
class Role(BaseModel):
__tablename__ = 'role'
__searchable__ = ['code', 'description']
id = Column(Integer, primary_key=True)
code = Column(String(20), nullable=False, unique=True)
description = Column(String(100), nullable=True)
class RoleBase(BaseModelSchema):
class Meta:
model = Role
id = fields.Integer(dump_only=True)
code = fields.String(required=True)
description = fields.String(required=True)How to use flask-msearch to search role.code through User.query.msearch ?
Looking forward to your reply, thanks!
Metadata
Metadata
Assignees
Labels
No labels