camelot (sqlalchemy ORM を使用) を使用してメンバー リストを保持するプログラムを作成しています。同じテーブル内で 1 対 1 の関係を意味する互いに結婚している人々がいるでしょう。これは Person クラスの簡易バージョンです。
class Person( Entity ):
id = Column(Integer, primary_key=True)
firstname = Column( Unicode(30), nullable = False )
lastname = Column( Unicode(30), nullable = False )
member_no = Column( Integer )
marital_status = Column( Unicode(15) )
marriage_date = Column( Date() )
married_to = ... # Should be one to one with self
私はこれをやってみました:
married_to = relationship("Person", uselist=False, backref="persons")
married_to_id = Column(Integer, ForeignKey('persons.id'))
しかし、それは失敗します:
InvalidRequestError: 1 つ以上のマッパーが初期化に失敗しました - 他のマッパーの初期化を続行できません。元の例外は: Person.married_to と back-reference Person.persons はどちらも同じ方向です。多対一側に remote_side を設定するつもりでしたか?
どうすれば同じテーブル内に参加できますか、またはこれは私が使用している間違ったアプローチですか? そして、私がAさんとBさんをつなぐと、Bさんは自動的にAさんと合流します(結婚の仕事として-両方の方法で...)
私は自分自身を明確にしていることを願っています。:-/