I have a relationship with a validator to automatically convert dicts 
appended to the collection, so I can do something like this:

my_obj.my_collection.append({"rel_type_id": x})

Instead of this:

my_obj.my_collection.append(RelType(rel_type_id=x))

That works exactly as expected, but when I try to replace the whole 
collection at once:

my_obj.my_collection = [{"rel_type_id": x}]

That results in a TypeError: unhashable type: 'dict', and the validator 
method is never called. Apparently that happens when the 
orm.collection.bulk_replace function uses sets to find the difference 
between the old and the new collection. I don't see an straightforward fix 
for that, it feels more like a limitation of the current implementation 
than a bug.

It looks like I could do what I want with a custom collection and the 
collection.converter decorator. Any other ideas?


Thanks.


-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to