связь между статической моделью и динамической моделью колбы - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть две модели (Threat_db, Vulnerability_db), которые связаны с таблицей vul_to_threat, это отношение многие ко многим, модель Threat_db является статической (мы создаем и помещаем данные только один раз), а Vulnerability_db является динамической (она постоянно меняется)

vul_to_threat=db.Table("vul_to_threat",
 db.Column('id_vul',db.Integer,db.ForeignKey('vulnerability_db.vuln_id')), 
 db.Column('id_threat',db.Integer,db.ForeignKey('threat_db.threat_id')) 
)

class Threat_db(db.Model):
   threat_id=db.Column(db.Integer,primary_key = True)
   threat_name = db.Column(db.String(30),unique=True)

   def __init__(self, threat_name):
     self.threat_name = threat_name



class Vulnerability_db(db.Model):
   vuln_id = db.Column(db.Integer, primary_key = True)
   title = db.Column(db.String(150),nullable=False,unique=True)
   assoc_threat_to_vul_table = db.relationship('Threat_db',secondary="vul_to_threat",backref=db.backref('assoc_threat__backref'))


   def __init__(self, title):
      self.title = title

мой вопрос: как я могу добавить данные в Vulnerability_db и связать их (в таблице vul_to_threat) с одной или несколькими строками в Treat_db без добавления каких-либо данных в Treat_db только в Vulnerability_db

for i in vul_list:
    if not exist_in_db(i,"vul"):
        temp_assoc=Vulnerability_db(i)
        temp_assoc.assoc_threat_to_vul_table.append(Threat_db(i))
        db.session.add(temp_assoc)
db.commit()

в этом коде я могу связать модели, но я также добавляю данные в Threat_db (из-за добавления), как это можно исправить?надеюсь, это понятно, спасибо

...