move back instance creation before query in create to catch errors early

This commit is contained in:
collerek
2020-11-11 10:24:36 +01:00
parent 9350b929aa
commit 5663ad6cc2

View File

@ -337,15 +337,15 @@ class QuerySet:
expr = self.table.insert()
expr = expr.values(**new_kwargs)
instance = self.model(**kwargs)
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:
kwargs["pk"] = new_kwargs[self.model_meta.pkname]
instance.pk = new_kwargs[self.model_meta.pkname]
if pk and isinstance(pk, self.model.pk_type()):
kwargs[self.model_meta.pkname] = pk
instance.pk = pk
instance = self.model(**kwargs)
# refresh server side defaults
instance = await instance.load()