Migrate from dyn_join_with to selectinload
This commit is contained in:
parent
be8d7c3175
commit
1e3678fb69
5 changed files with 73 additions and 41 deletions
|
@ -1,12 +1,12 @@
|
|||
from enum import Enum
|
||||
|
||||
from sqlmodel import Field
|
||||
from sqlmodel import Field, Relationship
|
||||
|
||||
from gisaf.models.models_base import Model
|
||||
from gisaf.models.metadata import gisaf_survey
|
||||
|
||||
|
||||
class Accuracy(Model):
|
||||
class Accuracy(Model, table=True):
|
||||
metadata = gisaf_survey
|
||||
|
||||
class Admin:
|
||||
|
@ -24,7 +24,7 @@ class Accuracy(Model):
|
|||
return f'<models.Accuracy {self.name}>'
|
||||
|
||||
|
||||
class Surveyor(Model):
|
||||
class Surveyor(Model, table=True):
|
||||
metadata = gisaf_survey
|
||||
|
||||
class Admin:
|
||||
|
@ -41,7 +41,7 @@ class Surveyor(Model):
|
|||
return f'<models.Surveyor {self.name}>'
|
||||
|
||||
|
||||
class Equipment(Model):
|
||||
class Equipment(Model, table=True):
|
||||
metadata = gisaf_survey
|
||||
|
||||
class Admin:
|
||||
|
@ -61,7 +61,7 @@ class GeometryType(str, Enum):
|
|||
point = 'Point'
|
||||
line_work = 'Line_work'
|
||||
|
||||
class AccuracyEquimentSurveyorMapping(Model):
|
||||
class AccuracyEquimentSurveyorMapping(Model, table=True):
|
||||
metadata = gisaf_survey
|
||||
__tablename__ = 'accuracy_equiment_surveyor_mapping'
|
||||
|
||||
|
@ -73,12 +73,22 @@ class AccuracyEquimentSurveyorMapping(Model):
|
|||
equipment_id: int = Field(foreign_key='equipment.id', index=True)
|
||||
geometry_type: GeometryType = Field(default='Point', index=True)
|
||||
accuracy_id: int = Field(foreign_key='accuracy.id')
|
||||
surveyor: Surveyor = Relationship()
|
||||
accuracy: Accuracy = Relationship()
|
||||
equipment: Equipment = Relationship()
|
||||
|
||||
@classmethod
|
||||
def dyn_join_with(cls):
|
||||
return {
|
||||
'surveyor': Surveyor,
|
||||
'equipment': Equipment,
|
||||
'accuracy': Accuracy,
|
||||
}
|
||||
def selectinload(cls):
|
||||
return [
|
||||
cls.surveyor,
|
||||
cls.equipment,
|
||||
cls.accuracy,
|
||||
]
|
||||
|
||||
# @classmethod
|
||||
# def dyn_join_with(cls):
|
||||
# return {
|
||||
# 'surveyor': Surveyor,
|
||||
# 'equipment': Equipment,
|
||||
# 'accuracy': Accuracy,
|
||||
# }
|
Loading…
Add table
Add a link
Reference in a new issue