我正在使用带有SQLAlchemy的Flask。我有活动,他们有与之相关的标签。标签可以属于许多事件,事件可以有许多标签。我有三个表,事件,标签和event_tag,这是一个连接表。我可以很好地检索我的数据 - 包括检索相关标签,但我似乎无法更新与事件关联的标签。
我有以下设置:
...
event_tag = db.Table('event_tag',
db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
db.Column('event_id', db.Integer, db.ForeignKey('event.id'))
)
class Event(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
note = db.Column(db.Text())
link = db.Column(db.String(255))
date_from = db.Column(db.Date())
date_to = db.Column(db.Date())
milestone = db.Column(db.Boolean)
tags = db.relationship('Tag', secondary=event_tag, backref=db.backref('events', lazy='dynamic'))
def __init__(self, name, note, link, date_from, date_to, milestone):
self.name = name
self.note = note
self.link = link
self.date_from = date_from
self.date_to = date_to
self.milestone = milestone
...
class Tag(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
reference = db.Column(db.String(255))
def __init__(self, name, reference):
self.name = name
self.reference = reference
答案 0 :(得分:0)
我认为这里的问题是您需要指定主要和次要联接。您可以通过以下方式交换for slots in soup.findAll(attrs={"class" : "pb-15 text-center"}):
tags = slots.find("a")
for IDS in tags:
try:
IDS = tags.attrs["id"]
except TypeError:
else:
print (IDS)
来实现。
tags = db.relationship('Tag', secondary=event_tag, backref=db.backref('events', lazy='dynamic'))