This query return orm objects. If it will return view as you want, in your
session may have two copies of one object
*<models.Task object at 0x7f25ac3ffe80>* and *<models.Item object at
0x7f25ac3ffe80> *and they not equals, but need to be equals
If you need to print values - You need to create something simular to
decorator of data, that return copy of required fields
If need to check type - You may use *instance.__class__.__name__* instead
of *isinstance*
понедельник, 10 декабря 2018 г., 14:18:00 UTC+3 пользователь Mehrdad
Pedramfar написал:
>
> Hi everybody,
> I have three classes in my model, which one class inherited by the other
> two:
>
>
> class Item(Base):
> __tablename__ = 'item'
>
> id = Column(Integer, primary_key=True)
> title = Column(Unicode(300))
> type = Column(Unicode(50))
>
> __mapper_args__ = {
> 'polymorphic_on': type
> }
>
>
> class Note(Item):
> __tablename__ = 'note'
>
> id = Column(Integer, ForeignKey('item.id'), primary_key=True)
> extra = Column(Text)
>
> __mapper_args__ = {
> 'polymorphic_identity': 'note'
> }
>
>
> class Task(Item):
> __tablename__ = 'task'
>
> id = Column(Integer, ForeignKey('item.id'), primary_key=True)
> another_extra = Column(Text)
>
> __mapper_args__ = {
> 'polymorphic_identity': 'task'
> }
> So, when I execute `session.query(Item).all()` I get a list that includes
> both `Note` and `Task` objects, but I don't want that, I want my objects to
> be the instance of `Item` class and just have `id`, `title`, `type`, not
> those extra fields. how should I write the query?
>
> to clarify more, currently, I get:
>
>
> [
> <models.Note object at 0x7f25ac3ffe80>,
> <models.Task object at 0x7f25ac3ffe80>,
> <models.Task object at 0x7f25ac3ffe80>,
> ...
> ]
>
> But I want to get:
>
> [
> <models.Item object at 0x000000000000>,
> <models.Item object at 0x000000000000>,
> <models.Item object at 0x000000000000>,
> ...
> ]
>
> I have asked the same question in StackOverflow, but still nothing. here
> is the :
> Get sqlalchemy base class object instead of children
> <https://stackoverflow.com/questions/53458005/get-sqlalchemy-base-class-object-instead-of-children>
>
> Get sqlalchemy base class object instead of children
>
> I have three classes in my model, which one class inherited by the other
> two: class Item(Base): __tablename...
>
> <https://stackoverflow.com/questions/53458005/get-sqlalchemy-base-class-object-instead-of-children>
>
>
>
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.