Ich entwickle eine WebApp mit Flask, als ORM Layer benutze ich SQLAlchemy.
Flask==0.9
Flask-SQLAlchemy==0.16
SQLAlchemy==0.8.0b2
Ich habe zwei einfache Tabellen. Zwischen Büchern und Kategorien besteht eine n:1 Beziehung, mehrere Bücher können einer Kategorie zugeordnet sein.
Code: Alles auswählen
class Category(db.Model):
__tablename__ = "categories"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
description = db.Column(db.String)
class Book(db.Model):
__tablename__ = "books"
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String)
publisher = db.Column(db.String)
category_id = db.Column(db.Integer, db.ForeignKey('categories.id'))
category = db.relationship('Book')
das funktioniert:
distinct_publishers = db.session.query(Immo.publisher).distinct().all()
... und liefert eine Liste von NamedTuples zurück.
das funktioniert nicht:
distinct_categories = db.session.query(Immo.category).distinct().all()
... liefert eine Liste von NamedTuples zurück, in denen allerdings nur True/False drin steht.
[(False), (True)]
Ich hätte stattdessen NamedTuples mit Category Objekten erwartet.
das funktioniert wieder:
distinct_category_ids = db.session.query(Immo.category_id).distinct().all()
ist aber nicht ganz was ich möchte, da es mir nur die IDs zurückliefert und ich dann erst noch die Objekte mir holen müsste.
Hat jemand einen Tip, was ich anders machen muss?
Dank + Gruss, beetronic