У меня есть таблица «ITEM_110» с двумя внешними ключами для таблицы «AXIS».
Я хочу изменить свою функцию «get_item_110 ()», чтобы получить «name_axis», соответствующее «ITEM_110.id_axis» и «name_axis» соответствует «ITEM_110.id_axis_tool».
from appli.app import Base, session
from sqlalchemy import Column, Integer, String, ForeignKey, Float
from sqlalchemy.orm import relationship
from ..models import machine, axis, position_y, position_x, area, tool
#The item 110 of AMAT300
class ITEM_110(Base):
__tablename__ = 'Item_110'
id_machine = Column(Integer, ForeignKey("Machine.id_machine"), nullable=False, primary_key=True)
id_axis = Column(Integer, ForeignKey("Axis.id_axis"), nullable=False, primary_key=True)
id_area = Column(Integer, ForeignKey("Area.id_area"), nullable=False, primary_key=True)
id_position_x = Column(Integer, ForeignKey("Position_X.id_position_x"), nullable=False, primary_key=True)
id_position_y = Column(Integer, ForeignKey("Position_Y.id_position_y"), nullable=False, primary_key=True)
id_axis_tool = Column(Integer, ForeignKey("Axis.id_axis"), nullable=False, primary_key=True)
id_tool = Column(Integer, ForeignKey("Tool.id_tool"), nullable=False, primary_key=True)
static_jitter_max = Column(Float(precision = 32), nullable=False)
static_jitter_min = Column(Float(precision = 32), nullable=False)
static_jitter_moy = Column(Float(precision = 32), nullable=False)
static_jitter_ecart_type = Column(Float(precision = 32), nullable=False)
def get_item_110(filters, sort):
"""
param: -filters (dictionnary), allow to filter data
-sort (list), a list with the name of column on which we want to sort
get all data according with filters and sort
"""
item_110 = session.query(ITEM_110.id_machine, ITEM_110.id_axis, ITEM_110.id_position_x, ITEM_110.id_position_y, ITEM_110.id_area, ITEM_110.id_axis_tool, ITEM_110.id_tool, \
ITEM_110.static_jitter_max, ITEM_110.static_jitter_min, ITEM_110.static_jitter_moy, ITEM_110.static_jitter_ecart_type, machine.MACHINE.number_machine, \
position_y.POSITIONY.position_y, position_x.POSITIONX.position_x, area.AREA.name_area)\
.filter_by(**filters).order_by(*sort).join(axis.AXIS, ITEM_110.id_axis == axis.AXIS.id_axis).join(axis.AXIS, ITEM_110.id_axis_tool == axis.AXIS.id_axis) \
.join(machine.MACHINE).join(position_y.POSITIONY).join(position_x.POSITIONX).join(area.AREA).join(tool.TOOL)
return item_110
from appli.app import Base, session
from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint
#The axis on which the tests are executed
class AXIS(Base):
__tablename__ = 'Axis'
id_axis = Column(Integer, primary_key = True)
name_axis = Column(String(10), nullable=False)
id_item = Column(Integer, ForeignKey("Item.id_item"), nullable=False)
__table_args__ = (
UniqueConstraint(name_axis, id_item),
)
Как мне это сделать?
Заранее благодарю за помощь