221900329俞润鼎 2021-02-23 19:54 采纳率: 60%
浏览 124

flask创建模型时使用‘’backref‘’报错?

在试图创建model.py时添加backref字段就报错

sqlalchemy.exc.ArgumentError: Error creating backref 'user' on relationship 'User.to_blog': property of that name exists on mapper 'mapped class Blog->blog'

部分代码如下

from app import db
from datetime import datetime


class User(db.Model):
    __tablename__ = "user"
    __table_args__ = {"extend_existing": True}
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(255), unique=True, nullable=False)
    pwd = db.Column(db.String(255), nullable=False)
    email = db.Column(db.String(255))
    introduce = db.Column(db.Text, default="xxx")
    headName = db.Column(db.String(255), default='default.png')
    head = db.Column(db.LargeBinary(1048576))
    right = db.Column(db.Integer, default=2)

    # 反向引用
    to_blog = db.relationship('app.models.Blog', backref='user') 


    def __repr__(self):
        return "User:%s %s %s" % (self.name, self.pwd, self.id)

    


class Blog(db.Model):
    __tablename__ = "blog"
    __table_args__ = {"extend_existing": True}
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    content = db.Column(db.Text)
    body_html = db.Column(db.Text)
    title = db.Column(db.String(255), nullable=False, unique=True)
    headName = db.Column(db.String(255), default='default_blog.png')
    head = db.Column(db.LargeBinary(1048576))

    # 外键
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    
    # 反向引用
    
if __name__ == "__main__":
    db.drop_all()
    db.create_all()
    # #
    roles = User(id=2, name='cat', pwd='cat', email='cat@qq.com')
    db.session.add(roles)
    db.session.commit()

原本为:

to_blog = db.relationship('Blog', backref='user')

因为报错

sqlalchemy.exc.InvalidRequestError: Multiple classes found for path "Blog" in the registry of this declarative base. Please use a fully module-qualified path.

才改成前者

  • 写回答

2条回答 默认 最新

  • weixin_42710942 2022-01-07 18:00
    关注

    请问这个问题怎么解决呢

    评论

报告相同问题?

悬赏问题

  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件