У меня есть модель в приложении Flask:
class Category(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), nullable=False)
is_income = db.Column(db.Boolean, nullable=False)
parent_id = db.Column(db.Integer, db.ForeignKey("category.id"), nullable=True)
parent = db.relationship("Category", uselist=False, lazy=True)
Я пытаюсь выбрать все категории с предварительно загруженным полем parent
и отсортировать по родительскому имени и названию категории.В Django я могу сделать это с помощью одной строки кода:
Category.objects.select_related("parent").order_by("parent__name", "name")
Я новичок в SQLAlchemy и не знаю, как это сделать правильно.Я узнаю, как предварительно загрузить parent
поле:
Category.query.options(joinedload(Category.parent)).order_by(Category.name)
Но я не знаю, как отсортировать запрос по полю parent.name
.Кто-нибудь знает как это сделать?Самая большая проблема в том, что parent
может быть нулевым.