Hello everybody,
Is it possible to map dictionaries whose keys are objects and the values
simple integers?
I have the following case :
*In the program, there is one instance of "Options" which contains a
dictionary. This dictionary has players as keys and integers as values.
These integers represents the options of the player used as a key.*
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer
Base = declarative_base()
class Options(Base):
__tablename__ = "options"
id = Column(Integer, primary_key=True)
def __init__(self):
self.options = {} # Player -> Integer
def set_options(self, player, value):
self.options[player] = value
class Player(Base):
__tablename__ = "players"
id = Column(Integer, primary_key=True)
opt = Options()
john = Player()
jack = Player()
opt.set_options(john, 2)
opt.set_options(jack, 5)
print(opt.options)
Display :
>>>
{<__main__.Player object at 0x0000000005611908>: 5, <__main__.Player object
at 0x0000000005611860>: 2}
>>>
Of course, in this particular case, it doesn't make a lot of sense and it
could be designed in another way. It is just an example. I have a lot of
dictionaries with objects as keys in my project and I have no idea how I
should map these... and curiously, I am not able to find any example on
Internet.
I found in the SQLAlchemy documentation explanations related to
mapped_collection and it sounds to be a bit what I'm looking for.
sqlalchemy.orm.collections.mapped_collection(keyfunc)
> *"A dictionary-based collection type with arbitrary keying."*
http://docs.sqlalchemy.org/en/latest/orm/collections.html
The Composite Association example seems also to be a good base to do what I
want :
http://docs.sqlalchemy.org/en/latest/orm/extensions/associationproxy.html#composite-association-proxy
Do you have suggestions ? Is it even possible ? What would be the good
method to map that ?
Thank you :-)
--
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.