В моем приложении я использую две модели и между ними одна к одной:
relationship:db.relationship('Operation',uselist=False, backref='operat')
Ниже представлены сами модели.
class Operation(db.Model):
__tablename__ = "operation"
id = db.Column(db.Integer, primary_key=True)
date_operation = db.Column(db.DateTime, index=True)
code = db.Column(db.Integer, index=True)
status_id = db.Column(db.Integer)
status = db.Column(db.String(60))
type_id = db.Column(db.Integer)
type = db.Column(db.String(120))
storage_id = db.Column(db.Integer)
storage = db.Column(db.String(240))
contragent_id = db.Column(db.Integer, db.ForeignKey('contragent.id'))
contragent = db.Column(db.String(240))
sum_operation = db.Column(db.Integer)
rezerv = db.Column(db.Integer)
cnt_doc = db.Column(db.Integer)
stellag = db.Column(db.Integer)
def __repr__(self):
return '<Operation {}>'.format(self.code)
class Contragent(db.Model):
__tablename__ = "contragent"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(360))
code = db.Column(db.Integer, index=True)
adress = db.Column(db.String(480))
inn = db.Column(db.Integer)
operations = db.relationship('Operation',uselist=False, backref='operat')
def __repr__(self):
return '<Contragent {}>'.format(self.name)
При выборе записей и получении имен записей для указанной модели p.operat.name
>>> o = Operation.query.all()
>>> for p in o:
... print(p.id, p.operat.name, p.code)
...
2 Рога и копытца22sdsd 222
Я получаю ошибку:
Traceback (most recent call last):
File "<console>", line 2, in <module>
AttributeError: 'NoneType' object has no attribute 'name'
>>>
Что вызывает ошибку и как ее исправить?