refactor getting aliased column names
This commit is contained in:
@ -170,7 +170,31 @@ class ModelTableProxy:
|
|||||||
return other
|
return other
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def own_table_columns( # noqa: CCR001
|
def _get_not_nested_columns_from_fields(
|
||||||
|
model: Type["Model"],
|
||||||
|
fields: List,
|
||||||
|
column_names: List[str],
|
||||||
|
use_alias: bool = False,
|
||||||
|
) -> List[str]:
|
||||||
|
fields = [model.get_column_alias(k) if not use_alias else k for k in fields]
|
||||||
|
columns = [name for name in fields if "__" not in name and name in column_names]
|
||||||
|
return columns
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _get_nested_columns_from_fields(
|
||||||
|
model: Type["Model"], fields: List, use_alias: bool = False,
|
||||||
|
) -> List[str]:
|
||||||
|
model_name = f"{model.get_name()}__"
|
||||||
|
columns = [
|
||||||
|
name[(name.find(model_name) + len(model_name)) :] # noqa: E203
|
||||||
|
for name in fields
|
||||||
|
if f"{model.get_name()}__" in name
|
||||||
|
]
|
||||||
|
columns = [model.get_column_alias(k) if not use_alias else k for k in columns]
|
||||||
|
return columns
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def own_table_columns(
|
||||||
model: Type["Model"],
|
model: Type["Model"],
|
||||||
fields: List,
|
fields: List,
|
||||||
nested: bool = False,
|
nested: bool = False,
|
||||||
@ -184,20 +208,13 @@ class ModelTableProxy:
|
|||||||
return column_names
|
return column_names
|
||||||
|
|
||||||
if not nested:
|
if not nested:
|
||||||
fields = [model.get_column_alias(k) if not use_alias else k for k in fields]
|
columns = ModelTableProxy._get_not_nested_columns_from_fields(
|
||||||
columns = [
|
model, fields, column_names, use_alias
|
||||||
name for name in fields if "__" not in name and name in column_names
|
)
|
||||||
]
|
|
||||||
else:
|
else:
|
||||||
model_name = f"{model.get_name()}__"
|
columns = ModelTableProxy._get_nested_columns_from_fields(
|
||||||
columns = [
|
model, fields, use_alias
|
||||||
name[(name.find(model_name) + len(model_name)) :] # noqa: E203
|
)
|
||||||
for name in fields
|
|
||||||
if f"{model.get_name()}__" in name
|
|
||||||
]
|
|
||||||
columns = [
|
|
||||||
model.get_column_alias(k) if not use_alias else k for k in columns
|
|
||||||
]
|
|
||||||
|
|
||||||
# if the model is in select and no columns in fields, all implied
|
# if the model is in select and no columns in fields, all implied
|
||||||
if not columns:
|
if not columns:
|
||||||
|
|||||||
Reference in New Issue
Block a user