【问题标题】:Insert values using many to many relationship使用多对多关系插入值
【发布时间】:2021-05-10 06:26:42
【问题描述】:

我是烧瓶和 Sqlalchemy 的新手

我有 2 个表,companyactivity,具有多对多关系,如下所示:

activities_companies = db.Table(
    'activites_companies',
    db.Column('company1_id', db.Integer, db.ForeignKey('company1.id')),
    db.Column('activity_id', db.Integer, db.ForeignKey('activity.id')),
)


class Company1(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    governorate = db.Column(db.String(255), nullable=False)
    area = db.Column(db.String(255), nullable=False)

    activities = db.relationship(
        'Activity',
        secondary = activities_companies,
        backref = db.backref('companies'),
        lazy = 'dynamic'
    )


class Activity(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    chamber_id = db.Column(db.Integer, db.ForeignKey('chamber.id'))

我有一个用于company 注册的 WTForms 表单,其中包括companynameaddress 等...以及Activities

我的问题是如何在关联表中添加公司activitiescompany ID。

if request.method == 'POST':
    new_company = Company1(
        name = form.name.data,
        governorate = form.governorate.data,
        area = form.area.data,
        activities = form.activity.data
    )

我收到了这个错误

AttributeError: 'str' 对象没有属性 '_sa_instance_state'

【问题讨论】:

标签: python flask sqlalchemy


【解决方案1】:

首先,创建 Activity 实例,然后在 Company 实例中分配一组 Activity。 这是您可以关注的参考:Flask sqlalchemy many-to-many insert data

【讨论】:

    猜你喜欢
    • 2021-01-23
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多