2016-05-23 50 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

結果
相關問題