#34242: Behavior of Model.delete() with regards to primary_key fields is not
documented
------------------------------------------------+------------------------
               Reporter:  SwampFalc             |          Owner:  nobody
                   Type:  Cleanup/optimization  |         Status:  new
              Component:  Documentation         |        Version:  dev
               Severity:  Normal                |       Keywords:
           Triage Stage:  Unreviewed            |      Has patch:  0
    Needs documentation:  0                     |    Needs tests:  0
Patch needs improvement:  0                     |  Easy pickings:  1
                  UI/UX:  0                     |
------------------------------------------------+------------------------
 When .delete() is called on a model instance, the primary_key field of
 that instance is set to None
 (https://github.com/django/django/blob/main/django/db/models/deletion.py#L456).

 For a "standard" autoincrement PK, this is fine. However, if you have
 defined an actual data field as primary_key on the model, this data is
 lost in the instance.

 This is counter to what is stated in the basic documentation about
 "Deleting objects"
 (https://docs.djangoproject.com/en/4.1/ref/models/instances/#deleting-
 objects): "This only deletes the object in the database; the Python
 instance will still exist and will still have data in its fields."

 There is also no mention of this in the documentation of "primary_key"
 (https://docs.djangoproject.com/en/4.1/ref/models/fields/#primary-key) or
 the more in-depth documentation about "Deleting objects"
 (https://docs.djangoproject.com/en/4.1/topics/db/queries/#deleting-
 objects).

 I feel that this should at the very least be mentioned in the
 "primary_key" documentation, perhaps in some of the other locations too.

 If an agreement can be reached about where it should be mentioned and
 where not, I am willing to create a pull request.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/34242>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/0107018581684583-ffae2763-b7d3-4b5d-840f-35fc41401e06-000000%40eu-central-1.amazonses.com.

Reply via email to