Das Modul für die Sprache. Hier möchte ich als Primary Key ein Kürzel wie z.B. "de" verwenden.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from elixir import using_options, Entity, Field, Unicode, OneToMany, ManyToOne, Integer, String
class Languages(Entity):
name = Field(Unicode(15))
shortcut = Field(String(2), primary_key=True)
mgname = OneToMany('MaterialGroupName')
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from elixir import using_options, Entity, Field, Unicode, ManyToOne, OneToMany
class MaterialGroupName(Entity):
name=Field(Unicode(20))
mg = ManyToOne('MaterialGroups')
language = ManyToOne('Languages')
Code: Alles auswählen
# Create some Demo Data for Language
de=Languages(name=u"Deutsch", shortcut="de")
Code: Alles auswählen
# Create some Demo Data for MaterialGroupNames
ucname=MaterialGroupName(name=u"Mikrocontroller", language="de")
Die Fehlermeldung lautet
Code: Alles auswählen
Traceback (most recent call last):
File "create_table.py", line 26, in <module>
ucname=MaterialGroupName(name=u"Mikrocontroller", language="de")
File "/usr/lib/python2.6/dist-packages/elixir/entity.py", line 718, in __call_
_
return type.__call__(cls, *args, **kwargs)
File "<string>", line 4, in __init__
File "/usr/lib/pymodules/python2.6/sqlalchemy/orm/state.py", line 82, in initi
alize_instance
return manager.events.original_init(*mixed[1:], **kwargs)
File "/usr/lib/python2.6/dist-packages/elixir/entity.py", line 876, in __init_
_
self.set(**kwargs)
File "/usr/lib/python2.6/dist-packages/elixir/entity.py", line 880, in set
setattr(self, key, value)
File "/usr/lib/pymodules/python2.6/sqlalchemy/orm/attributes.py", line 150, in
__set__
self.impl.set(instance_state(instance), instance_dict(instance), value, None
)
File "/usr/lib/pymodules/python2.6/sqlalchemy/orm/attributes.py", line 575, in
set
value = self.fire_replace_event(state, dict_, value, old, initiator)
File "/usr/lib/pymodules/python2.6/sqlalchemy/orm/attributes.py", line 595, in
fire_replace_event
value = ext.set(state, value, previous, initiator or self)
File "/usr/lib/pymodules/python2.6/sqlalchemy/orm/attributes.py", line 827, in
set
new_state, new_dict = instance_state(child), instance_dict(child)
AttributeError: 'str' object has no attribute '_sa_instance_state'
Die Frage ist jetzt, habe ich irgendwo einen Denkfehler oder geht da was nicht mit Elixir? Ich komme nicht dahinter.