refactor translating of aliases from queryset to modelproxy
This commit is contained in:
@ -74,7 +74,7 @@ class QuerySet:
|
||||
new_kwargs = self._remove_pk_from_kwargs(new_kwargs)
|
||||
new_kwargs = self.model.substitute_models_with_pks(new_kwargs)
|
||||
new_kwargs = self._populate_default_values(new_kwargs)
|
||||
new_kwargs = self._translate_columns_to_aliases(new_kwargs)
|
||||
new_kwargs = self.model.translate_columns_to_aliases(new_kwargs)
|
||||
return new_kwargs
|
||||
|
||||
def _populate_default_values(self, new_kwargs: dict) -> dict:
|
||||
@ -83,22 +83,6 @@ class QuerySet:
|
||||
new_kwargs[field_name] = field.get_default()
|
||||
return new_kwargs
|
||||
|
||||
def _translate_columns_to_aliases(self, new_kwargs: dict) -> dict:
|
||||
for field_name, field in self.model_meta.model_fields.items():
|
||||
if (
|
||||
field_name in new_kwargs
|
||||
and field.name is not None
|
||||
and field.name != field_name
|
||||
):
|
||||
new_kwargs[field.name] = new_kwargs.pop(field_name)
|
||||
return new_kwargs
|
||||
|
||||
def _translate_aliases_to_columns(self, new_kwargs: dict) -> dict:
|
||||
for field_name, field in self.model_meta.model_fields.items():
|
||||
if field.name in new_kwargs and field.name != field_name:
|
||||
new_kwargs[field_name] = new_kwargs.pop(field.name)
|
||||
return new_kwargs
|
||||
|
||||
def _remove_pk_from_kwargs(self, new_kwargs: dict) -> dict:
|
||||
pkname = self.model_meta.pkname
|
||||
pk = self.model_meta.model_fields[pkname]
|
||||
@ -207,7 +191,7 @@ class QuerySet:
|
||||
async def update(self, each: bool = False, **kwargs: Any) -> int:
|
||||
self_fields = self.model.extract_db_own_fields()
|
||||
updates = {k: v for k, v in kwargs.items() if k in self_fields}
|
||||
updates = self._translate_columns_to_aliases(updates)
|
||||
updates = self.model.translate_columns_to_aliases(updates)
|
||||
if not each and not self.filter_clauses:
|
||||
raise QueryDefinitionError(
|
||||
"You cannot update without filtering the queryset first. "
|
||||
@ -353,7 +337,7 @@ class QuerySet:
|
||||
f"{self.model.__name__} has to have {pk_name} filled."
|
||||
)
|
||||
new_kwargs = self.model.substitute_models_with_pks(new_kwargs)
|
||||
new_kwargs = self._translate_columns_to_aliases(new_kwargs)
|
||||
new_kwargs = self.model.translate_columns_to_aliases(new_kwargs)
|
||||
new_kwargs = {"new_" + k: v for k, v in new_kwargs.items() if k in columns}
|
||||
ready_objects.append(new_kwargs)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user