如何解决Flask SQLAlchemy 循环依赖
当我从数据库查询现有对象后尝试删除它时,我收到此循环依赖错误。我无法弄清楚为什么会发生这种情况以及为什么我可以查询对象并获取所有数据但不能在不导致此依赖项错误的情况下删除它。任何帮助或提示将不胜感激。
另外一点:我是否需要 backref 和 ondelete='CASCADE' 中的级联?
<div class="row justify-content-center">
<div class="col-md-4">
Column width of md-4
</div>
<div class="offset-md-1 col-md-4">
Column width of md-4
</div>
</div>
class Device(db.Model):
__tablename__ = "device"
# Properties
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(32))
serial_nr = db.Column(db.String(32))
model = db.Column(db.String(32))
hersteller = db.Column(db.String(32))
active = db.Column(db.Boolean,default=True)
device_type = db.Column(db.String(32))
__mapper_args__ = {
'polymorphic_identity': 'device','polymorphic_on': device_type
}
class NetworkDevice(Device):
__tablename__ = "networkdevice"
__mapper_args__ = {
'polymorphic_identity': 'networkdevice',}
# Properties
MAC_Lan = db.Column(db.BIGINT)
MAC_Wlan = db.Column(db.BIGINT)
IP = db.Column(db.Integer)
nic_speed = db.Column(db.Integer)
# Relationships
device_id = db.Column(db.Integer,db.ForeignKey(Device.id,ondelete="CASCADE"),primary_key=True)
device = db.relationship("Device",backref=backref("networkdevice2",uselist=False,cascade="all,delete-orphan"))
class Drucker(NetworkDevice):
__tablename__ = "drucker"
__mapper_args__ = {
'polymorphic_identity': 'drucker',}
# Properties
duplex = db.Column(db.Boolean)
# Relationships
device_id = db.Column(db.Integer,db.ForeignKey(NetworkDevice.device_id,primary_key=True)
networkdevice = db.relationship("NetworkDevice",backref=backref("drucker",delete-orphan"))
query_result = Device.query.filter(Device.id == 321).one_or_none()
if query_result is not None:
db.session.delete(query_result)
db.session.commit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。