bug fixes

This commit is contained in:
collerek
2021-06-22 12:58:39 +02:00
parent f197df0ecd
commit 172a6a2be6
7 changed files with 188 additions and 31 deletions

View File

@ -76,7 +76,7 @@ class UndefinedType: # pragma no cover
Undefined = UndefinedType()
__version__ = "0.10.11"
__version__ = "0.10.12"
__all__ = [
"Integer",
"BigInteger",

View File

@ -131,7 +131,11 @@ def ManyToMany(
validate_not_allowed_fields(kwargs)
if to.__class__ == ForwardRef:
__type__ = to if not nullable else Optional[to]
__type__ = (
Union[to, List[to]] # type: ignore
if not nullable
else Optional[Union[to, List[to]]] # type: ignore
)
column_type = None
else:
__type__, column_type = populate_m2m_params_based_on_to_model(

View File

@ -1014,35 +1014,8 @@ class QuerySet(Generic[T]):
:return: created model
:rtype: Model
"""
new_kwargs = dict(**kwargs)
new_kwargs = self.model.prepare_model_to_save(new_kwargs)
expr = self.table.insert()
expr = expr.values(**new_kwargs)
instance = self.model(**kwargs)
await self.model.Meta.signals.pre_save.send(
sender=self.model, instance=instance
)
pk = await self.database.execute(expr)
pk_name = self.model.get_column_alias(self.model_meta.pkname)
if pk_name not in kwargs and pk_name in new_kwargs:
instance.pk = new_kwargs[self.model_meta.pkname]
if pk and isinstance(pk, self.model.pk_type()):
instance.pk = pk
# refresh server side defaults
if any(
field.server_default is not None
for name, field in self.model.Meta.model_fields.items()
if name not in kwargs
):
instance = await instance.load()
instance.set_save_status(True)
await self.model.Meta.signals.post_save.send(
sender=self.model, instance=instance
)
instance = await instance.save()
return instance
async def bulk_create(self, objects: List["T"]) -> None: