Changes between Initial Version and Version 1 of Ticket #13839, comment 18
- Timestamp:
- Jan 8, 2012, 10:19:13 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TabularUnified Ticket #13839, comment 18
initial v1 3 3 > 1. The point of selected_related() is that it avoids doing an extra lookup. With the proposed fix, when the related object does not exist, accessing the attribute will cause the lookup to happen. This throws the `DoesNotExist` as it ought to, but the lookup shouldn't happen at all. I imagine that one way to fix this, while preserving the efficiency of select_related, is to use some other sentinel value that triggers a `DoesNotExist` exception inside the OneToOne descriptor. (Since querysets need to be pickled, remember that the simplest choice of sentinel value is a class). 4 4 5 Added test for this. A second sentinel is not needed, because we can just check the field.null if None is a valid value .5 Added test for this. A second sentinel is not needed, because we can just check the field.null if None is a valid value (Edit: currently, this is always False so we can just raise the exception on None, see below). 6 6 7 7 >