[storm] I get a multiple matches exception, but it shows me the same match twice

Gabriel Rossetti gabriel.rossetti at arimaz.com
Thu Jul 24 15:13:53 BST 2008


Hello,

I get an exception that says it found multiple matches for a class 
member, but it shows me the same match twice, is there a bug?

I tried this (simplified):

class User(Storm):
    """
    Maps the C{user} table in the database
    """
   
    __storm_table__ = "user"
   
    id = Int(primary=True, name="user_id")
    firstName = Unicode(name="first_name")
    lastName = Unicode(name="last_name")
    languageId = Int(name="language_id")
    language = Reference(languageId, u"Language.id")
   
    def __init__(self, firstName, lastName, lang):
        self.firstName = firstName
        self.lastName = lastName
        self.language = lang

class Language(Storm):
    __storm_table__ = "language"
   
    id = Int(primary=True, name="language_id")
    name = Unicode()
   
    def __init__(self, name):
        self.name = name

def populateDb(store)
    lang1 = Language(u"ENGLISH")
    store.add(lang1)
    lang2 = Language(u"FRENCH")
    store.add(lang2)
   
    user1 = User(u"Gabriel", u"Rossetti", lang1)
    store.add(user1)


and I get this :

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "services/common/orm.py", line 704, in populateDb
    user1 = User(u"Gabriel", u"Rossetti", lang1)
  File "services/common/orm.py", line 137, in __init__
    self.language = lang
  File "/usr/lib/python2.5/site-packages/storm/references.py", line 133, 
in __set__
    self._build_relation(local.__class__)
  File "/usr/lib/python2.5/site-packages/storm/references.py", line 155, 
in _build_relation
    self._remote_key = resolver.resolve(self._remote_key)
  File "/usr/lib/python2.5/site-packages/storm/references.py", line 773, 
in resolve
    return (self.resolve_one(properties),)
  File "/usr/lib/python2.5/site-packages/storm/references.py", line 780, 
in resolve_one
    return self._resolve_string(property)
  File "/usr/lib/python2.5/site-packages/storm/references.py", line 796, 
in _resolve_string
    return registry.get(property_path, self._namespace)
  File "/usr/lib/python2.5/site-packages/storm/properties.py", line 284, 
in get
    (name, ", ".join(paths)))
storm.exceptions.PropertyPathError: Path 'Language.id' matches multiple 
properties: services.common.orm.Language.id, services.common.orm.Language.id

Does anyone have any ideas? Also, I tried to use the debugging method 
like shown in the tutorial, but storm.tracer doesn't exist anymore, was 
this replaced by something else? (I know it wouldn't help me find the 
error in this case)

Thanks,
Gabriel



More information about the storm mailing list