Opened 7 years ago
Last modified 5 years ago
#29260 closed Bug
Django makes an extra UPDATE query when custom PK is evaluating before save. — at Version 1
Reported by: | user0007 | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Using a model's instance:
class Account(models.Model): id = models.UUIDField( primary_key=True, default=uuid.uuid4, editable=False ) title = models.TextField() >> account = Account() >> account.title = "abc" >> account.save() 1. UPDATE "app_account" SET "title" = \'\', WHERE "app_account"."id" = \'67c9327d-150e-419f-b493-0c2c59a045c3\'::uuid', 2. INSERT INTO "app_account" ("title", "id") VALUES (\'abc\', \'3d8c1b3c-214a-4798-a0fa-d4c22c2b877f\'::uuid)
Using a model's manager method:
>> Account.objects.create(title="abc") 1. INSERT INTO "app_account" ("title", "id") VALUES (\'abc\', \'3d8c1b3c-214a-4798-a0fa-d4c22c2b877f\'::uuid)
Using a model's instance with force_insert
argument:
>> account = Account() >> account.title = "abc" >> account.save(force_insert=true) 1. INSERT INTO "app_account" ("title", "id") VALUES (\'abc\', \'3d8c1b3c-214a-4798-a0fa-d4c22c2b877f\'::uuid)
Related issue? https://code.djangoproject.com/ticket/29129
Note:
See TracTickets
for help on using tickets.