WIP changes up to join redefinition pending - use fields instead of join_params
This commit is contained in:
@ -39,10 +39,9 @@ class QuerysetProxy(ormar.QuerySetProtocol):
|
||||
self._queryset: Optional["QuerySet"] = qryset
|
||||
self.type_: "RelationType" = type_
|
||||
self._owner: "Model" = self.relation.manager.owner
|
||||
self.related_field_name = (
|
||||
self._owner.Meta.model_fields[self.relation.field_name].related_name
|
||||
or self._owner.get_name() + "s"
|
||||
)
|
||||
self.related_field_name = self._owner.Meta.model_fields[
|
||||
self.relation.field_name
|
||||
].get_related_name()
|
||||
self.related_field = self.relation.to.Meta.model_fields[self.related_field_name]
|
||||
self.owner_pk_value = self._owner.pk
|
||||
|
||||
@ -108,8 +107,8 @@ class QuerysetProxy(ormar.QuerySetProtocol):
|
||||
:type child: Model
|
||||
"""
|
||||
model_cls = self.relation.through
|
||||
owner_column = self._owner.get_name()
|
||||
child_column = child.get_name()
|
||||
owner_column = self.related_field.default_target_field_name()
|
||||
child_column = self.related_field.default_source_field_name()
|
||||
kwargs = {owner_column: self._owner.pk, child_column: child.pk}
|
||||
if child.pk is None:
|
||||
raise ModelPersistenceError(
|
||||
@ -129,8 +128,8 @@ class QuerysetProxy(ormar.QuerySetProtocol):
|
||||
:type child: Model
|
||||
"""
|
||||
queryset = ormar.QuerySet(model_cls=self.relation.through)
|
||||
owner_column = self._owner.get_name()
|
||||
child_column = child.get_name()
|
||||
owner_column = self.related_field.default_target_field_name()
|
||||
child_column = self.related_field.default_source_field_name()
|
||||
kwargs = {owner_column: self._owner, child_column: child}
|
||||
link_instance = await queryset.filter(**kwargs).get() # type: ignore
|
||||
await link_instance.delete()
|
||||
|
||||
@ -164,8 +164,6 @@ class RelationsManager:
|
||||
:param name: name of the relation
|
||||
:type name: str
|
||||
"""
|
||||
relation_name = (
|
||||
item.Meta.model_fields[name].related_name or item.get_name() + "s"
|
||||
)
|
||||
relation_name = item.Meta.model_fields[name].get_related_name()
|
||||
item._orm.remove(name, parent)
|
||||
parent._orm.remove(relation_name, item)
|
||||
|
||||
@ -42,9 +42,8 @@ class RelationProxy(list):
|
||||
if self._related_field_name:
|
||||
return self._related_field_name
|
||||
owner_field = self._owner.Meta.model_fields[self.field_name]
|
||||
self._related_field_name = (
|
||||
owner_field.related_name or self._owner.get_name() + "s"
|
||||
)
|
||||
self._related_field_name = owner_field.get_related_name()
|
||||
|
||||
return self._related_field_name
|
||||
|
||||
def __getattribute__(self, item: str) -> Any:
|
||||
|
||||
Reference in New Issue
Block a user