-
-
Notifications
You must be signed in to change notification settings - Fork 97
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Saving a model (.save or .create) who's pk is UUID results in the following error:
NoMatch: Instance was deleted from database and cannot be refreshed
To Reproduce
Steps to reproduce the behavior:
class Tenant(ormar.Model):
ormar_config = get_engine().ormar_config.copy()
id: uuid.UUID = ormar.UUID(
uuid_format="string",
primary_key=True,
server_default=sa.text("uuid_generate_v4()"),
)
# id: int = ormar.Integer(primary_key=True, autoincrement=True)
name: str = ormar.String(max_length=255, unique=True)
address: str = ormar.String(max_length=255)
city: str = ormar.String(max_length=100)
state: str = ormar.String(max_length=50)
zip_code: str = ormar.String(max_length=20)
tenant = Tenant(
name="Blueberry",
address="123 Main St",
city="San Francisco",
state="CA",
zip_code="94105"
)
tenant = await tenant.save()
tenants = await Tenant.objects.all()
tenantsExpected behavior
The model saves without error.
Full Stacktrace
---------------------------------------------------------------------------
NoMatch Traceback (most recent call last)
Cell In[3], line 9
1 tenant = Tenant(
2 name="Blueberry",
3 address="123 Main St",
(...) 6 zip_code="94105"
7 )
----> 9 tenant = await tenant.save()
11 tenants = await Tenant.objects.all()
12 tenants
File ~/GitHub/sondr-ai/blueberry-ai/.venv/lib/python3.14/site-packages/ormar/models/model.py:108, in Model.save(self)
102 # refresh server side defaults
103 if any(
104 field.server_default is not None
105 for name, field in self.ormar_config.model_fields.items()
106 if name not in self_fields
107 ):
--> 108 await self.load()
110 await self.signals.post_save.send(sender=self.__class__, instance=self)
111 return self
File ~/GitHub/sondr-ai/blueberry-ai/.venv/lib/python3.14/site-packages/ormar/models/model.py:296, in Model.load(self)
294 row = await self.ormar_config.database.fetch_one(expr)
295 if not row: # pragma nocover
--> 296 raise NoMatch("Instance was deleted from database and cannot be refreshed")
297 kwargs = dict(row)
298 kwargs = self.translate_aliases_to_columns(kwargs)
NoMatch: Instance was deleted from database and cannot be refreshed
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working