Ron wrote:
> When I try the above I get this error at flush time:
>
> InvalidRequestError: Class 'str' entity name 'None' has no mapper
> associated with it
>
> Here is my dictionary collection_class:
>
> class AttributeDictNEW(dict):
>     """
>     My Attribute Dict
>     """
>
>     def append(self, item):
>         super(AttributeDictNEW, self).__setitem__(item.name, item)
>
>     def test__iter__(self):
>         return iter(self.values())
>
>     def test__getitem__(self, name):
>         return super(AttributeDictNEW,
> self).__getitem__(name).value
>
>     def __setitem__(self, name, value):
>         if not isinstance(value, Attribute):
>             newattr = Attribute(name, str(value))
>             self.append(newattr)
>
>         else:
>             self.append(value)
>
> The test__ functions are named such to get out of the way of the
> parent class's functions while testing.

The association proxy will take care of Attribute construction for 
you, so you can get away with just:

class AttributeDictNEW(dict):
    def append(self, item):
        self[item.key] = item
    def __iter__(self):
        return self.itervalues()

However,
>
>             newattr = Attribute(name, str(value))
>

For the stringification of values on construction, you can either 
do that in Attribute's __init__ or supply a creator function to the 
association proxy:

stringy_attr = lambda name, value: Attribute(name, str(value))
...
attrs = association_proxy('_attrs', 'value', creator=stringy_attr)


-jek


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to