当查询为all()的时候,如何动态添加self.fields 的值?
来源:7-6 序列化SQLAlchemy模型

慕斯0994087
2019-05-16
老师重写了数据库的base~里面巧妙的运用 了append,来动态添加序列化fields的值。我的疑问是,这在查询frist(),一个对象的时候可以使用,那all()出来的 对象,要如何前置去动态修改fields呢?
需求是,我有一个答题程序,在第一次获取题目的时候,不返回正确值,在确认后,返回这个题目的正确值
2回答
-
慕斯0994087
提问者
2019-05-17
class Base(db.Model):
__abstract__ = True
def __getitem__(self, item):
return getattr(self, item)
def set_attrs(self, attrs_dict):
for value in attrs_dict:
if hasattr(self, value.name) and value.name != 'id':
setattr(self, value.name, value.data)
def delete(self):
self.status = 0
def keys(self):
return self.fields
def hide(self, *keys):
for key in keys:
self.fields.remove(key)
return self
def append(self, *keys):
for key in keys:
self.fields.append(key)
return self=============================
from common.libs.basic.Database import db, Base
from flask_sqlalchemy import orm
from common.libs.basic.Helper import getCurrentDate, getId, getMinutesDate
class PapersModel(Base):
__tablename__ = 'papers'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), nullable=False, comment='试卷名称')
limited_time = db.Column(db.Integer, nullable=True, default=0, comment='限时')
status = db.Column(db.Integer, nullable=True, default=1)
created_time = db.Column(db.DateTime, nullable=False, default=getCurrentDate, comment='请求时间')
# questions = db.relationship("Questions")
questions_types = db.relationship("QuestionsTypesModel")
@orm.reconstructor
def __init__(self):
self.fields = ['id', 'name', 'questions_types']
@staticmethod
def ops_add(form):
pass=========================
@orm.reconstructor
def __init__(self):
self.fields = ['id', 'name', 'questions_types']这个在查询单对象的 时候,通过,base.append() 序列化字段。
查询全部的时候怎么办呢,不能循环一遍,一个个加吧~~
012019-05-17 -
7七月
2019-05-16
我忘记代码了,可否贴一下代码看看?
00
相似问题
回答 1
回答 1