У меня есть 2 таблицы "ident_report "и" ir_owner_card_activity ". «ident_report »[ident_id] имеет отношение« один ко многим »с« ir_owner_card_activity ».
Здесь, кажется, простой вопрос, но я не мог понять, как указать свою обратную ссылку, когда я пытаюсь сделать db.session.add ( backref ) для "ir_owner_card_activity".
Ниже приведен пример моего кода:
admin / __ init __. Py
from flask import Flask, request, session
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_pyfile('config.py')
db = SQLAlchemy(app)
admin / models.py
from admin import db
class IncidentReport(db.Model):
__tablename__ = "incident_report"
id = db.Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
customer_name = db.Column(db.String(120))
incident_id = db.Column(db.String(120), unique=True)
customer_activity = db.relationship('IRCustomerActivity', backref='report')
class IRCustomerActivity(db.Model):
__tablename__ = "ir_owner_card_activity"
id = db.Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
tranx_date = db.Column(db.Date)
amount = db.Column(db.Integer)
report_id = db.Column(db.String(120), db.ForeignKey(IncidentReport.incident_id))
admin / data.py
from admin import db
from admin.models import IncidentReport, IRCustomerActivity
import datetime
def build_sample_db():
db.drop_all()
db.create_all()
# Create sample IncidentReport
ir = IncidentReport()
ir.customer_name = "Jack Ma"
ir.incident_id = "IR-012345"
db.session.add(ir)
# Create sample CustomerAcitivity
activity = IRCustomerActivity()
activity.tranx_date = datetime.datetime.now()
activity.amount = 588
db.session.add(Activity, report=ir.customer_name)
db.session.commit()
return
run_server.py
from admin import app
from admin.data import build_sample_db
import os
import os.path as op
# Build a sample db on the fly, if one does not exist yet.
app_dir = op.join(op.realpath(os.path.dirname(__file__)), 'admin')
database_path = op.join(app_dir, app.config['DATABASE_FILE'])
if not os.path.exists(database_path):
build_sample_db()
# Start app
app.run(debug=True)
Отображается ошибка:
TypeError: add () получил неожиданный аргумент ключевого слова 'report'
Я понимаю, что "report" в admin / data.py не может быть идентифицирован как backref из admin / models.py , но могу ли я узнать, как мне указать на обратную ссылку?