Как ВЫБРАТЬ данные из базовой модели, а также получить доступ к данным из подмоделей в PythonPython

Программы на Python
Ответить
Anonymous
 Как ВЫБРАТЬ данные из базовой модели, а также получить доступ к данным из подмоделей в Python

Сообщение Anonymous »

Я новичок в Python, и я формализовал свои таблицы «Пользователь» и «Сотрудник» для наследования от модели Person, теперь при входе в систему я не могу получить доступ к атрибутам данных из дочерних классов.
Базовый класс:

Код: Выделить всё

class Person(db_connection.Base):
Id= Column(Integer, primary_key= True, index= True)
Name= Column(String(25), nullable= False)
Address= Column(String(60))
Phone= Column(String(14))
Email= Column(String(70), nullable= False, unique= True)
Password= Column(String(200), nullable= False)
Классы, наследующие Person:

Код: Выделить всё

# USERS TABLE
class User(Person):
__tablename__= 'users'

Id= Column(Integer, ForeignKey('person.Id'), primary_key= True, index= True, nullable=False)
Has_Resume= Column(Boolean, default= 'False')
Title= Column(String(100))
Languages= Column(String)

__mapper_args__={"polymorphic_identity": "users"}

# EMPLOYEE TABLE
class Employee(Person):
__tablename__= 'employees'

Id= Column(Integer, ForeignKey('person.Id'), primary_key= True, index= True, nullable= False)
Employee_ID= Column(String)
Position= Column(String(70))
Company= Column(Boolean, default= 'False')

__mapper_args__={"polymorphic_identity": "employees"}
Когда я вхожу в систему, у меня есть доступ только к атрибутам Person. Если я попытаюсь получить атрибуты от пользователя или сотрудника в моем шаблоне Jinja2, например:

Код: Выделить всё

{{user_in.Position}} 
При входе в систему я проверяю пользователя так:

Код: Выделить всё

# if email and password is valid return the user
def authenticate_user(username: str, password: str, db: Session):
# check if login type is user
user= db.query(Person).filter(Person.Email == username).first()

if user and user.Activated:
# cehck if user and password match in DB
if pass_settings.verify_pass(password, user.Password):
return user
При входе пользователи могут войти в систему как ПОЛЬЗОВАТЕЛЬ или СОТРУДНИК на одной и той же странице входа.
Заранее благодарим за помощь.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»