Родитель / ребенок «один ко многим» различают «ноль» и «ноль» детей - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть отношения родитель-ребенок следующим образом.Я хотел бы иметь возможность различать нулевых детей (например, информацию, еще не известную) и нулевых детей.Это подход, который я сейчас использую.Это работает, но кажется немного громоздким.Есть ли лучший способ сделать это?

from sqlalchemy import Column, Integer, ForeignKey, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship


Base = declarative_base()
engine = create_engine('sqlite:///')


class Parent(Base):
    __tablename__ = 'parent'

    id = Column(Integer, primary_key=True)

    children = relationship('Child', uselist=False)


class Child(Base):
    __tablename__ = 'child'

    id = Column(Integer, ForeignKey('parent.id'), primary_key=True)

    child_items = relationship('ChildItem')

class ChildItem(Base):
    __tablename__ = 'childitems'

    id = Column(Integer, ForeignKey('child.id'), primary_key=True)

Base.metadata.create_all(engine)
p = Parent()
assert(p.children is None)  # Would like to be able to do something like this.

c = Child()
c.child_items.append(ChildItem())
p.children = c

assert(p.children is not None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...