Pony ORM似乎是按Json值的字符串排序的,而不是整數值。有沒有辦法讓這個訂單正確?Pony ORM order_by json積分值
下面是一個例子:
from pony.orm import (
Database, Required, Optional, db_session, commit,
show, Json)
db = Database()
db.bind('sqlite', filename=':memory:', create_db=True)
class Person(db.Entity):
name = Required(str)
body = Optional(Json, default={})
db.generate_mapping(create_tables=True)
with db_session:
Person(name='bort', body={'age': 1})
Person(name='baz', body={'age': 2})
Person(name='bar', body={'age': 10})
Person(name='foo', body={'age': 20})
commit()
people = Person.select().order_by(lambda p: p.body['age'])
show(people)
輸出:
id|name|body
--+----+-----------
1 |bort|{'age': 1}
3 |bar |{'age': 10}
2 |baz |{'age': 2}
4 |foo |{'age': 20}
有沒有辦法來解決這個問題,並小馬ORM不支持這一點,還是我做錯了什麼?
試試'lambda p:int(p.body ['age'])''。 – stovfl
你試過這個嗎?我很確定我早些時候嘗試過,並得到一個錯誤消息 - 雖然現在不在計算機上檢查 – freebie