diff --git a/model/entry.py b/model/entry.py index bf78fb5..a263b14 100644 --- a/model/entry.py +++ b/model/entry.py @@ -7,8 +7,8 @@ from meta import Base, metadata #from sense import Sense -#from k_ele import K_ele -#from r_ele import R_ele +#from kana_element import KanaElement +#from kanji_element import KanjiElement metadata = Base.metadata @@ -24,12 +24,8 @@ class Entry(Base): id = Column(Integer, primary_key=True, autoincrement=True) ent_seq = Column(Integer) - kanji_id = Column(Integer, ForeignKey('kanji_element.id')) - kana_id = Column(Integer, ForeignKey('kana_element.id')) - sense_id = Column(Integer, ForeignKey('sense.id')) - - kanji = relationship('KanjiElement', backref='entry') kana = relationship('KanaElement', backref='entry') + kanji = relationship('KanjiElement', backref='entry') sense = relationship('Sense', backref='entry') def __str__(self): diff --git a/model/kana_element.py b/model/kana_element.py index 90d4227..90a0ead 100644 --- a/model/kana_element.py +++ b/model/kana_element.py @@ -1,7 +1,7 @@ #! /usr/bin/env python from sqlalchemy import Column, Integer, Table, Unicode -from sqlalchemy.orm import relation +from sqlalchemy.orm import relationship from sqlalchemy.schema import ForeignKey from meta import Base, metadata @@ -20,6 +20,8 @@ class KanaElement(Base): id = Column(Integer, primary_key=True, autoincrement=True) element = Column(Unicode) + entry_id = Column(Integer, ForeignKey('entry.id')) + def __str__(self): return u'%s' % (self.element) diff --git a/model/kanji_element.py b/model/kanji_element.py index 22bb8fa..5c9db56 100644 --- a/model/kanji_element.py +++ b/model/kanji_element.py @@ -1,7 +1,7 @@ #! /usr/bin/env python from sqlalchemy import Column, Integer, Table, Unicode -from sqlalchemy.orm import relation +from sqlalchemy.orm import relationship from sqlalchemy.schema import ForeignKey from meta import Base, metadata @@ -28,6 +28,8 @@ class KanjiElement(Base): id = Column(Integer, primary_key=True, autoincrement=True) element = Column(Unicode) + entry_id = Column(Integer, ForeignKey('entry.id')) + def __str__(self): return u'%s' % (self.element) diff --git a/model/sense.py b/model/sense.py index 684721c..d128a36 100644 --- a/model/sense.py +++ b/model/sense.py @@ -1,7 +1,7 @@ #! /usr/bin/env python from sqlalchemy import Column, Integer, Table, Unicode -from sqlalchemy.orm import relation +from sqlalchemy.orm import relationship from sqlalchemy.schema import ForeignKey from meta import Base, metadata @@ -20,7 +20,9 @@ class Sense(Base): __tablename__ = 'sense' id = Column(Integer, primary_key=True, autoincrement=True) - gloss = relation(Gloss, backref='sense') + gloss = relationship(Gloss, backref='sense') + + entry_id = Column(Integer, ForeignKey('entry.id')) def __str__(self): return u'%s' % (u', '.join([g for g in self.gloss])) diff --git a/parser.py b/parser.py index b473df9..14942f9 100644 --- a/parser.py +++ b/parser.py @@ -45,15 +45,13 @@ def parse(self, filename): kana = KanaElement() kana.element = elem.text - #entry.kana.append(kana) - entry.kana = kana + entry.kana.append(kana) if tag == 'keb' and action == 'start': kanji = KanjiElement() kanji.element = elem.text - #entry.kanji.append(kanji) - entry.kanji = kanji + entry.kanji.append(kanji) if tag == 'sense' and action == 'start': sense = Sense(); @@ -64,8 +62,7 @@ def parse(self, filename): sense.gloss.append(gloss) if tag == 'sense' and action == 'end': - #entry.sense.append(sense) - entry.sense = sense + entry.sense.append(sense) if tag == 'entry' and action == 'end': ses.add(entry)