#18153: Erorneous OneToOneField for instances that have pk unset
-------------------------------------+-------------------------------------
     Reporter:  jbzdak@…             |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  1.4
  (models, ORM)                      |               Resolution:
     Severity:  Normal               |             Triage Stage:  Accepted
     Keywords:                       |      Needs documentation:  0
    Has patch:  1                    |  Patch needs improvement:  0
  Needs tests:  0                    |                    UI/UX:  0
Easy pickings:  0                    |
-------------------------------------+-------------------------------------
Changes (by dhatch):

 * has_patch:  0 => 1


Comment:

 The behavior I just described would break existing regression tests.  I've
 written a patch for this such that SingleRelatedObjectDescriptor raises a
 DoesNotExist regardless of the null settings if the instance does not have
 a pk.  Note: The behavior of raising DoesNotExist even when the field is
 nullable seems inconsistent with other components of the API.

 ReverseSingleRelatedObjectDescriptor returns None when the field is null
 (see line 375 of django.db.models.fields.related).  There is another open
 issue about this problem at #10227.

 My patch is at https://github.com/dhatch/django/tree/ticket_18153.  Will
 submit a pull request once it has been reviewed.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/18153#comment:3>
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 post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to