Я хочу создать отношение многие ко многим, используя Flask -SQLAlchemy, но опускаюсь даже на самый простой пример. Я использовал пример кода по ссылке здесь и добавил основные элементы, чтобы получить этот функционал в вызове файла app.py:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
tags = db.Table('tags',
db.Column('tag_id', db.Integer, db.ForeignKey('tag.id'), primary_key=True),
db.Column('page_id', db.Integer, db.ForeignKey('page.id'), primary_key=True)
)
class Page(db.Model):
id = db.Column(db.Integer, primary_key=True)
page_name = db.Column(db.String(30))
tags = db.relationship('Tag', secondary=tags, lazy='subquery',
backref=db.backref('pages', lazy=True))
class Tag(db.Model):
id = db.Column(db.Integer, primary_key=True)
tag_name = db.Column(db.String(30))
У меня есть команда Python набранная строка:
from app import *
db.create_all()
Который правильно создал файл, и я вижу три таблицы. Отлично!
Как мне теперь go о создании страниц и тегов в этом примере ... Я ожидал что-то вроде:
new_page = Page(tags=["tagone"])
Но я получаю ошибку:
AttributeError: у объекта 'str' нет атрибута '_sa_instance_state
Я не уверен, с чего начать, чтобы быть честным ..