2017-08-24 18 views
0

私はSQLAlchemyを使用しており、1対多の関係で特定のアイテムを削除します。あなたには2枚の写真があります。まず、EERモデルを見ることができます。その1つ(性別)〜多く()の関係です。SQLAlchemy:1対多の関係でアイテムを削除するにはどうすればいいですか?

enter image description here

第二に、あなたは、架空のデータが表形式で表示することができます。 性別表記は現在2つの性別があり、表記は3名です。 enter image description here

あなたは単に性別を削除して、「男性」と言いましょう。しかし、我々は、男性が表記で外国人として使用されていることを確認します。

class PERSON_GENDER(Base): 

    __tablename__ = "person_gender" 

    id = Column(Integer, primary_key=True, unique=True, autoincrement=True) 
    gender = Column(String(50), nullable=False, unique=True) 

class PERSON(Base): 

    __tablename__ = "person" 

    id = Column(Integer, primary_key=True, unique=True, autoincrement=True) 
    nickname = Column(String(255)) 
    alias_name = Column(String (255)) 
    name_normally_used = Column(String(50), nullable=False) 
    first_middle_name = Column(String(255)) 
    last_name = Column(String(100)) 
    birth_name = Column(String(100)) 
    body_height = Column(String(10)) 
    wedding_anniversary = Column(Date) 
    birthday = Column(Date) 
    day_of_death = Column(Date) 
    notice = Column(Text()) 

    gender_id = Column(Integer, ForeignKey('person_gender.id', ondelete='CASCADE')) 
    gender = relationship("PERSON_GENDER", single_parent=True, cascade="all, delete, delete-orphan") 

私はこの1つを実行

、その後、性別だけでなく、削除されていますが、人:次のように

私の現在のソースコードが見えます。私はジェンダーだけが削除され、人ではないことを望みます。

答えて

1

ondelete = 'CASCADE')=> ondelete = 'SET NULL')

+0

TAです。それはうまく動作します。 – Sophus

関連する問題