簡體   English   中英

Flask + SQLAlchemy鄰接列表backref錯誤

[英]Flask + SQLAlchemy adjacency list backref error

我有以下型號:

class Category(db.Model):
    __tablename__ = 'categories'

    id = db.Column(db.Integer, primary_key=True)
    parent_id = db.Column(db.Integer, db.ForeignKey(id), nullable=True)
    level = db.Column(db.SmallInteger)
    name = db.Column(db.String(200))
    children = db.relationship('Category', backref=backref('parent', remote_side=id))

    def __repr__(self):
        return '<Category %r>' % (self.name)

這似乎不起作用。 我總是得到以下錯誤:

NameError: name 'backref' is not defined

我究竟做錯了什么?

在這條線上......

children = db.relationship('Category', backref=backref('parent', remote_side=id))

您正在使用backref屬性,但從未定義過它。 如果你寫了......你會得到類似的錯誤

children = db.relationship('Category', backref=photosynthesis('parent', remote_side=id))

同樣的問題:Python不知道“光合作用”是什么。

那么,什么是backref實際上應該在你的代碼中呢? 原來它是SQLAlchemy的一部分功能 與許多這些函數(例如,您正在使用的“關系”函數)一樣,Flask-SQLAlchemy將為您提供別名,因此您無需直接導入它們。

您可以使用文檔作為指南。 而不是backref=backref ,你想要backref=db.backref

你必須明確backref是什么。 您可以使用此導入執行此操作:

from sqlalchemy.orm import backref

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM