Использование sqlalchemy.sql.functions.char_length в качестве условия фильтра - PullRequest
4 голосов
/ 06 июля 2011

Я использую Elixir и sqla 0.6 и пытаюсь запросить мою модель:

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

... для документов, имеющих номера заданной длины.

Iдумал о чем-то вроде этого:

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

... но очевидно, что char_length, хотя и присутствует в sqlalchemy.sql.functions, здесь не работает.Как я могу заставить его работать в рамках декларативной идиомы, не прибегая к прямым запросам?

1 Ответ

6 голосов
/ 08 июля 2011

ок, нашел ответ:

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