Вопрос новичка. Пилоны 1 + SQLA с использованием декларативного стиля. Новое в Python.
У меня есть «основной» класс, называемый Entity, которому должны принадлежать «дочерние» классы, чтобы они были действительными. Моя ссылка на мастер-класс находится на уровне дочернего объекта. Моя проблема в том, что я не могу понять, как создать дочерний объект и создать главный объект, а также создать связь между объектами. Я использую отношения для связи.
Таким образом, я хотел бы создать ono для одной ссылки, как показано ниже:
Сущность 1 - Клиент 1
Сущность 2 - Клиент 2
Сущность 3 - Продюсер 1
Сущность 4 - Продюсер 2
и т.д.
Код может объяснить лучше.
class Entity(Base):
__tablename__ = "entities"
# Primary Key
entity_id = Column(Integer, primary_key=True)
# Data Fields
name = Column(Unicode(255), nullable=False)
def __init__(self, name, description):
self.name = name
def __unicode__(self):
return self.name
__str__ = __unicode__
class Client(Base):
__tablename__ = "clients"
client_id = Column(Integer, primary_key=True)
# Data fields
name = Column(UnicodeText(255), nullable=False, unique=True)
# Entity Link
entity_id = Column(Integer, ForeignKey('entities.entity_id'))
# Mapper
entity = relation('Entity')
def __init__(self, name):
self.name = name
def __unicode__(self):
return self.name
__str__ = __unicode__
В контроллере я пытаюсь создать нового клиента и добавить к нему сущность, которая с треском проваливается. Пожалуйста, введите код ниже.
client_entity = model.Entity(name=client_name, description=client_name + " added")
client = model.Client(name=client_name)
client.entity.append(client_entity)
Session.add(client)
Session.commit()
Теперь, по моему мнению, это должно быть возможно, и я надеюсь, что кто-то может помочь, поскольку я в моем уме.