我使用Flask和SQLAlchemy在搜索请求和解析数据之间创建一个1对1的关系。一旦用户检查了搜索结果,他们就可以单击“继续”来解析数据(并创建一个数据类实例)。但是,我不确定如何在__init__引用之前引用类变量。我希望我的Data实例有一个请求-响应对象r。在
主叫代码(视图.py)公司名称:search = Search(form) # create source result
search.author = g.user
db.session.add(search)
db.session.commit()
...
data = Data()
data.search_id = this_search.id
db.session.add(data)
db.session.commit()
搜索类(模型.py)公司名称:
^{pr2}$
数据类(模型.py)公司名称:class Data(db.Model):
id = db.Column(db.Integer, primary_key=True)
search_id = db.Column(db.Integer, db.ForeignKey('search.id'))
search = db.relationship('Search', backref="information")
r = None
def __init__(self):
self.r = requests.get(self.search.url)
我得到的错误是:AttributeError: 'NoneType' object has no attribute 'url'
很明显,我不能在声明Data.search变量之前创建self.r,因为错误表明它是NoneType类型。我不确定创建这样的新变量的正确格式应该是什么。如果我将self.r声明移动到初始化后调用的类方法,则代码可以工作。谢谢!在