2016-05-23 52 views
8

我使用peewee作为ORM,有两个班是这样的:联盟在使用peewee具有不同名称的字段

class A(Model): 
    name = CharField() 
    body = TextField() 

class B(Model): 
    title = CharField() 
    body = TextField() 

我想从ABtitle/name开始与一些得到所有条目字符如'abc'。根据文件|运营商应该帮助,但我甚至无法执行产生的Expression。很显然,我希望在幕后有一个UNIONAS表达式。我如何通过peewee得到这个?

回答

4

你应该能够得到你想要的东西,如

result = (
    A().select(A.name.alias('name_title'), A.body).where(A.name == 'abc') | 
    B().select(B.title.alias('name_title'), B.body).where(B.title == 'abc') 
).select().execute() 

search_text = 'abc' 
table_a_results = A().select(
    A.name.alias('name_title'), 
    A.body 
).where(A.name == search_text) 
table_b_results = B().select(
    B.name.alias('name_title'), 
    B.body 
).where(B.title == search_text) 

result = (table_a_results | table_b_results).select().execute() 

.alias()方法可以让你的AS功能按照docs

结果
相关问题