#28385: deserializers ignore natural keys when primary key has a default value
-------------------------------------+-------------------------------------
     Reporter:  Daniel Knell         |                    Owner:  Irindu
                                     |  Indeera
         Type:  Bug                  |                   Status:  assigned
    Component:  Core                 |                  Version:  1.11
  (Serialization)                    |
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  1                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Daniel Knell):

 When a models primary key has default set, and a fixture is loaded that
 does not have a pk attribute, then the serialisation code will refuse to
 update the existing instance and instead try to create a new record in the
 db.

 When the primary key attribute has a default value - such as models using
 UUID primary keys - the model will fill the pk attribute with that at
 instantiation time, and the check in build_instance will see that default
 value and refuse to goto the database to fetch the existing instance.

 This is against the expectations set in the docs, that when the
 model/manager implement the natural keys interfaces and the primary key is
 omitted, the framework will update the existing instance when
 deserialising.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/28385#comment:4>
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/069.03ae30f88f6cceb51592a112e61145b5%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to