lektor-website/content/docs/api/db/expression/contents.lr

28 lines
876 B
Markdown

title: Expression
---
summary: Represents filter expressions for the query system.
---
module: lektor.db
---
type: class
---
body:
Expressions are used to filter down [Query :ref](../query/) objects. They
can be passed to the [filter :ref](../query/filter/) function in particular.
The most basic expression is created by accessing the [F :ref](../f/) object
which will return an expression that points to a field. Further manipulation
of it can create more expressive expressions. `F.name` literally just means
that a field by that name exists and is set to a value.
The query syntax is mostly the same in Python as well as in the Jinja 2
templates, the main difference are [and :ref](and/) and [or :ref](or/).
## Example
```pycon
>>> p.children.filter((F.name == 'foo') | (F.name == 'bar')).all()
[<Page model=u'page' id=u'bar'>, <Page model=u'page' id=u'foo'>]
```