move back instance creation before query in create to catch errors early
This commit is contained in:
@ -337,15 +337,15 @@ class QuerySet:
|
|||||||
expr = self.table.insert()
|
expr = self.table.insert()
|
||||||
expr = expr.values(**new_kwargs)
|
expr = expr.values(**new_kwargs)
|
||||||
|
|
||||||
|
instance = self.model(**kwargs)
|
||||||
pk = await self.database.execute(expr)
|
pk = await self.database.execute(expr)
|
||||||
|
|
||||||
pk_name = self.model.get_column_alias(self.model_meta.pkname)
|
pk_name = self.model.get_column_alias(self.model_meta.pkname)
|
||||||
if pk_name not in kwargs and pk_name in new_kwargs:
|
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()):
|
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
|
# refresh server side defaults
|
||||||
instance = await instance.load()
|
instance = await instance.load()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user