#757 closed defect (fixed)
Cannot set primary key value manually for new objects.
Reported by: | Owned by: | Adrian Holovaty | |
---|---|---|---|
Component: | Core (Other) | Version: | |
Severity: | major | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When calling object.save() for objects whose primary key values *do not* exist in the model table, an auto-assigned primary key value is used instead of the one that I assign in my program. For example, this code will result in a primary key based on a db.get_last_insert_id call rather than the value I assign (assuming no record with id = 15 exists in the model table):
obj = SomeModel() obj.id = 15 obj.save()
The object.save() code in meta/__init__.py assumes that if the ID does not already exist, an INSERT must take place and any auto-assign fields must get their values accordingly.
Attachments (1)
Change History (3)
by , 19 years ago
Attachment: | pk_save.diff added |
---|
comment:1 by , 19 years ago
I've added a small patch to fix this issue, but I cannot attest to whether other issues remain (for example, whether calling f.pre_save() on some AutoField f will never be problematic). I've tested this and it works as expected under the circumstances I described.
comment:2 by , 19 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Patch to make saving primary key values work.