Я создаю приложение для оценки пива на мероприятии. Пиво, которое можно оценить, должно быть добавлено в таблицу, а также, если событие добавлено в другую таблицу, и пиво и событие должны быть связаны. Поскольку на мероприятии можно попробовать не только одно пиво, а пиво можно попробовать на нескольких мероприятиях, я хочу создать отношения am: n-Relations. Я делаю это с python3, я использую flask и flasksqlalchemy. Я использую базу данных sqlite.
Модель, которую я построил, выглядит так:
#association table
event_beer = db.Table('event_beer',
db.Column('event_id', db.Integer, db.ForeignKey('event.id'), primary_key=True),
db.Column('beer_id', db.Integer, db.ForeignKey('beer.id'), primary_key=True))
class Event(db.Model):
__tablename__ = 'event'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
def __str__(self):
return f'{name}'
class Beer(db.Model):
__tablename__ = 'beer'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
event = db.relationship('Event', secondary=event_beer)
def __str__(self):
return f'{self.name}, {self.event}'
Я опустил несколько столбцов, в которых нет внешних ключей или около того для ради простоты. Код, который выполняется, когда я хочу сохранить записанные данные:
event = Event(name = 'event_name')
beer1 = Beer(name = 'beerone')
beer2 = Beer(name = 'beertwo')
beer1.event.append(event)
beer2.event.append(event)
db.session.commit()
Сохраняемые значения не являются строками, но для простоты я заменил их. Однако значения есть, и в базе данных нет пустых строк.
Я не знаю, неправильно ли я настроил модель или это проблема при фиксации. Любая помощь будет оценена.