rename alias manager
This commit is contained in:
@ -79,13 +79,13 @@ But don't worry - ormar can handle situations like this, as it uses the Relation
|
||||
Each class is registered with the same instance of the AliasManager that you can access like this:
|
||||
|
||||
```python
|
||||
SchoolClass._orm_relationship_manager
|
||||
SchoolClass.alias_manager
|
||||
```
|
||||
|
||||
It's the same object for all `Models`
|
||||
|
||||
```python
|
||||
print(Teacher._orm_relationship_manager == Student._orm_relationship_manager)
|
||||
print(Teacher.alias_manager == Student.alias_manager)
|
||||
# will produce: True
|
||||
```
|
||||
|
||||
@ -94,11 +94,11 @@ print(Teacher._orm_relationship_manager == Student._orm_relationship_manager)
|
||||
You can even preview the alias used for any relation by passing two tables names.
|
||||
|
||||
```python
|
||||
print(Teacher._orm_relationship_manager.resolve_relation_join(
|
||||
print(Teacher.alias_manager.resolve_relation_join(
|
||||
'students', 'categories'))
|
||||
# will produce: KId1c6 (sample value)
|
||||
|
||||
print(Teacher._orm_relationship_manager.resolve_relation_join(
|
||||
print(Teacher.alias_manager.resolve_relation_join(
|
||||
'categories', 'students'))
|
||||
# will produce: EFccd5 (sample value)
|
||||
```
|
||||
|
||||
@ -54,6 +54,7 @@ def ForeignKey(
|
||||
|
||||
class ForeignKeyField(BaseField):
|
||||
to: Type["Model"]
|
||||
name: str
|
||||
related_name: str
|
||||
virtual: bool
|
||||
|
||||
@ -65,15 +66,6 @@ class ForeignKeyField(BaseField):
|
||||
def validate(cls, value: Any) -> Any:
|
||||
return value
|
||||
|
||||
# @property
|
||||
# def __type__(self) -> Type[BaseModel]:
|
||||
# return self.to.__pydantic_model__
|
||||
|
||||
# @classmethod
|
||||
# def get_column_type(cls) -> sqlalchemy.Column:
|
||||
# to_column = cls.to.Meta.model_fields[cls.to.Meta.pkname]
|
||||
# return to_column.column_type
|
||||
|
||||
@classmethod
|
||||
def _extract_model_from_sequence(
|
||||
cls, value: List, child: "Model"
|
||||
|
||||
@ -26,7 +26,7 @@ class ModelMeta:
|
||||
columns: List[sqlalchemy.Column]
|
||||
pkname: str
|
||||
model_fields: Dict[str, Union[BaseField, ForeignKey]]
|
||||
_orm_relationship_manager: AliasManager
|
||||
alias_manager: AliasManager
|
||||
|
||||
|
||||
def register_relation_on_build(table_name: str, field: ForeignKey, name: str) -> None:
|
||||
@ -158,7 +158,7 @@ class ModelMetaclass(pydantic.main.ModelMetaclass):
|
||||
)
|
||||
expand_reverse_relationships(new_model)
|
||||
|
||||
new_model.Meta._orm_relationship_manager = relationship_manager
|
||||
new_model.Meta.alias_manager = relationship_manager
|
||||
new_model.objects = QuerySet(new_model)
|
||||
|
||||
return new_model
|
||||
|
||||
@ -40,7 +40,7 @@ class Model(NewBaseModel):
|
||||
if select_related:
|
||||
related_models = group_related_list(select_related)
|
||||
|
||||
table_prefix = cls.Meta._orm_relationship_manager.resolve_relation_join(
|
||||
table_prefix = cls.Meta.alias_manager.resolve_relation_join(
|
||||
previous_table, cls.Meta.table.name
|
||||
)
|
||||
|
||||
|
||||
@ -109,7 +109,7 @@ class QueryClause:
|
||||
previous_table = model_cls.Meta.tablename
|
||||
for part in related_parts:
|
||||
current_table = model_cls.Meta.model_fields[part].to.Meta.tablename
|
||||
manager = model_cls.Meta._orm_relationship_manager
|
||||
manager = model_cls.Meta.alias_manager
|
||||
table_prefix = manager.resolve_relation_join(previous_table, current_table)
|
||||
model_cls = model_cls.Meta.model_fields[part].to
|
||||
previous_table = current_table
|
||||
|
||||
@ -44,7 +44,7 @@ class Query:
|
||||
|
||||
@property
|
||||
def relation_manager(self) -> AliasManager:
|
||||
return self.model_cls.Meta._orm_relationship_manager
|
||||
return self.model_cls.Meta.alias_manager
|
||||
|
||||
def build_select_expression(self) -> Tuple[sqlalchemy.sql.select, List[str]]:
|
||||
self.columns = list(self.table.columns)
|
||||
@ -84,7 +84,7 @@ class Query:
|
||||
model_cls = join_params.model_cls.Meta.model_fields[part].to
|
||||
to_table = model_cls.Meta.table.name
|
||||
|
||||
alias = model_cls.Meta._orm_relationship_manager.resolve_relation_join(
|
||||
alias = model_cls.Meta.alias_manager.resolve_relation_join(
|
||||
join_params.from_table, to_table
|
||||
)
|
||||
if alias not in self.used_aliases:
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import string
|
||||
import string
|
||||
import uuid
|
||||
from enum import Enum
|
||||
from random import choices
|
||||
|
||||
Reference in New Issue
Block a user