我有以下查询:
refund_requests = RefundRequest.query\
.with_entities(RefundRequest.id, User.email)\
.join(User, User.id == RefundRequest.user_id) \
.join(UserProperty, UserProperty.id == User.id) \
.join(RefundRequestDetails, RefundRequestDetails.refund_requests_id == RefundRequest.id) \
.join(Currency, RefundRequestDetails.currency_id == Currency.id) \
.join(RefundRequest.project).all()
它可以工作,但是如何从RefundRequest和所有相关模型中动态加载所有属性?
我知道我可以在with_entitites()函数中选择所有属性(在上面的代码中,我仅从用户模型中选择ID和电子邮件),但是我不想列出所有50个属性。
我还知道,通过删除with_attributes()函数,我可以使用关系访问其他Model属性,但是在我的代码中,我创建了一个字符串列表,其中列出了每个column(attribute)名称。该列表由用户动态创建-我不知道用户在fontend中选择了哪个值。 例如,该列表如下所示:
list_of_attr = ['id', 'email', 'full_name']
full_name是UserProperty属性。