Задать вопрос
@lightmanLP
Задушил питона

Flask-SQLAlchemy ошибка при join?

Пытаюсь соединить 2 таблицы в Flask-SQLAlchemy. Появляется ошибка атрибутов. Что я делаю не так?

Модели:
class Profile(db.Model):
  """User profiles table"""
  user_id = db.Column(db.Integer, primary_key=True, autoincrement=False)
  selected_hero = db.Column(db.Integer)
  heroes = db.Column(db.PickleType)
  hero = db.relationship('Hero', backref='profile', lazy='dynamic')


class Hero(db.Model):
  """Heroes table"""
  hero_id = db.Column(db.Integer, db.ForeignKey('profile.user_id'), primary_key=True, autoincrement=True)
  name = db.Column(db.Text)
  hp = db.Column(db.Integer)


Запрос:
quer = models.Profile.query\
    .join(models.Hero)\
    .filter_by(user_id=ev.a_id).first()
VkMethods.messages_send(f'Test\nname: {quer.name}\nhp: {quer.hp}', ev.conf)


Ошибка:
File "main.py", line 83, in db_test
    VkMethods.messages_send(f'Test\nname: {quer.name}\nhp: {quer.hp}', ev.conf)
AttributeError: 'NoneType' object has no attribute 'name'
2020-06-13 00:14:56,783: Exception on / [POST]
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sqlalchemy/orm/base.py", line 399, in _entity_descriptor
    return getattr(entity, key)
AttributeError: type object 'Hero' has no attribute 'user_id'


P.S. Данные в таблицах присутствуют.
  • Вопрос задан
  • 257 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
.filter_by(hero_id=ev.a_id).first()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы