Update docs
This commit is contained in:
@@ -101,57 +101,66 @@ def sort_query(query, *args, **kwargs):
|
|||||||
::
|
::
|
||||||
|
|
||||||
|
|
||||||
>>> import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
>>> from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
>>> from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
>>> from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
>>> from sqlalchemy_utils import sort_query
|
from sqlalchemy_utils import sort_query
|
||||||
>>>
|
|
||||||
>>>
|
|
||||||
>>> engine = create_engine(
|
engine = create_engine(
|
||||||
... 'sqlite:///'
|
'sqlite:///'
|
||||||
... )
|
)
|
||||||
>>> Base = declarative_base()
|
Base = declarative_base()
|
||||||
>>> Session = sessionmaker(bind=engine)
|
Session = sessionmaker(bind=engine)
|
||||||
>>> session = Session()
|
session = Session()
|
||||||
>>>
|
|
||||||
>>> class Category(Base):
|
class Category(Base):
|
||||||
... __tablename__ = 'category'
|
__tablename__ = 'category'
|
||||||
... id = sa.Column(sa.Integer, primary_key=True)
|
id = sa.Column(sa.Integer, primary_key=True)
|
||||||
... name = sa.Column(sa.Unicode(255))
|
name = sa.Column(sa.Unicode(255))
|
||||||
>>>
|
|
||||||
>>> class Article(Base):
|
class Article(Base):
|
||||||
... __tablename__ = 'article'
|
__tablename__ = 'article'
|
||||||
... id = sa.Column(sa.Integer, primary_key=True)
|
id = sa.Column(sa.Integer, primary_key=True)
|
||||||
... name = sa.Column(sa.Unicode(255))
|
name = sa.Column(sa.Unicode(255))
|
||||||
... category_id = sa.Column(sa.Integer, sa.ForeignKey(Category.id))
|
category_id = sa.Column(sa.Integer, sa.ForeignKey(Category.id))
|
||||||
...
|
|
||||||
... category = sa.orm.relationship(
|
category = sa.orm.relationship(
|
||||||
... Category, primaryjoin=category_id == Category.id
|
Category, primaryjoin=category_id == Category.id
|
||||||
... )
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1. Applying simple ascending sort
|
1. Applying simple ascending sort
|
||||||
|
::
|
||||||
|
|
||||||
|
|
||||||
|
query = session.query(Article)
|
||||||
|
query = sort_query(query, 'name')
|
||||||
|
|
||||||
>>> query = session.query(Article)
|
|
||||||
>>> query = sort_query(query, 'name')
|
|
||||||
|
|
||||||
2. Appying descending sort
|
2. Appying descending sort
|
||||||
|
::
|
||||||
|
|
||||||
>>> query = sort_query(query, '-name')
|
|
||||||
|
query = sort_query(query, '-name')
|
||||||
|
|
||||||
3. Applying sort to custom calculated label
|
3. Applying sort to custom calculated label
|
||||||
|
::
|
||||||
|
|
||||||
>>> query = session.query(
|
|
||||||
... Category, sa.func.count(Article.id).label('articles')
|
query = session.query(
|
||||||
... )
|
Category, sa.func.count(Article.id).label('articles')
|
||||||
>>> query = sort_query(query, 'articles')
|
)
|
||||||
|
query = sort_query(query, 'articles')
|
||||||
|
|
||||||
4. Applying sort to joined table column
|
4. Applying sort to joined table column
|
||||||
|
::
|
||||||
|
|
||||||
>>> query = session.query(Article).join(Article.category)
|
|
||||||
>>> query = sort_query(query, 'category-name')
|
query = session.query(Article).join(Article.category)
|
||||||
|
query = sort_query(query, 'category-name')
|
||||||
|
|
||||||
|
|
||||||
:param query:
|
:param query:
|
||||||
|
|||||||
Reference in New Issue
Block a user