add fixes for fastapi model clones, add functionality to add and remove models to relation, add relation proxy, fix all tests, adding values also to pydantic model __dict__some refactors
This commit is contained in:
@ -69,10 +69,11 @@ class Query:
|
||||
# print(expr.compile(compile_kwargs={"literal_binds": True}))
|
||||
self._reset_query_parameters()
|
||||
|
||||
return expr, self._select_related
|
||||
return expr
|
||||
|
||||
@staticmethod
|
||||
def on_clause(
|
||||
self, previous_alias: str, alias: str, from_clause: str, to_clause: str,
|
||||
previous_alias: str, alias: str, from_clause: str, to_clause: str,
|
||||
) -> text:
|
||||
left_part = f"{alias}_{to_clause}"
|
||||
right_part = f"{previous_alias + '_' if previous_alias else ''}{from_clause}"
|
||||
|
||||
@ -47,7 +47,7 @@ class QuerySet:
|
||||
offset=self.query_offset,
|
||||
limit_count=self.limit_count,
|
||||
)
|
||||
exp, self._select_related = qry.build_select_expression()
|
||||
exp = qry.build_select_expression()
|
||||
return exp
|
||||
|
||||
def filter(self, **kwargs: Any) -> "QuerySet": # noqa: A003
|
||||
@ -118,15 +118,25 @@ class QuerySet:
|
||||
async def get(self, **kwargs: Any) -> "Model":
|
||||
if kwargs:
|
||||
return await self.filter(**kwargs).get()
|
||||
else:
|
||||
if not self.filter_clauses:
|
||||
expr = self.build_select_expression().limit(2)
|
||||
else:
|
||||
expr = self.build_select_expression()
|
||||
|
||||
expr = self.build_select_expression().limit(2)
|
||||
rows = await self.database.fetch_all(expr)
|
||||
|
||||
result_rows = [
|
||||
self.model_cls.from_row(row, select_related=self._select_related)
|
||||
for row in rows
|
||||
]
|
||||
rows = self.model_cls.merge_instances_list(result_rows)
|
||||
|
||||
if not rows:
|
||||
raise NoMatch()
|
||||
if len(rows) > 1:
|
||||
raise MultipleMatches()
|
||||
return self.model_cls.from_row(rows[0], select_related=self._select_related)
|
||||
return rows[0]
|
||||
|
||||
async def all(self, **kwargs: Any) -> List["Model"]: # noqa: A003
|
||||
if kwargs:
|
||||
|
||||
Reference in New Issue
Block a user