2011-07-06 28 views
3

我使用的藥劑和sqla 0.6,我想查詢我的模型:使用sqlalchemy.sql.functions.char_length作爲過濾條件

class Document(Entity): 
    using_options(shortnames=True, order_by='doc_date') 
    doc_number = Field(Unicode(20),index=True) 

...對於具有一個數字文件給定的長度。

我在想是這樣的:

Document.query.filter(Document.doc_number.char_lenght()==5).all() 

......但顯然,CHAR_LENGTH,而目前在sqlalchemy.sql.functions,是不是在這裏工作。我怎樣才能使它在聲明性的習慣用法,而不訴諸直接查詢?

+0

只是suggestioin:下面發表您的答案,並接受它的答案讓人們馬上會知道你的問題就解決了 – kusut

+0

@kusut我試圖做什麼你的建議,但代碼標記似乎沒有在評論編輯器中工作,我對界面感到困惑......我會再試一次,謝謝。 – AlexVhr

回答

6

好了,找到了答案:

from sqlalchemy import func 
Document.query.filter(func.char_length(Document.doc_number)==5).all() 
+1

我想它是在一個更新的版本中移動,但它現在在'sqlalchemy.sql.functions.char_length' – GP89