r16051 broke editing a filtered changelist
|Reported by:||Karen Tracey||Owned by:||nobody|
|Severity:||Release blocker||Keywords:||regression dataloss|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
r16051 changed a bunch of form actions in the admin from
action=".". I have noticed a side-effect of this change is that editing a filtered changelist is now broken: the edit can affect rows other then the ones intended. Looking at the dev server logging for the change list edit POST, with r16050 I see:
[04/Jun/2011 12:24:25] "POST /admin/ctrac/cat/?avail__exact=1 HTTP/1.1" 302 0
whereas with r16051 I see:
[04/Jun/2011 12:20:50] "POST /admin/ctrac/cat/ HTTP/1.1" 302 0
The change list filtering information is no longer being sent with the POST, and as a result the queryset used to process the POSTed edit doesn't match the original queryset that was used to construct the filtered change list for display. The effect that I have seen, without completely tracking down how it is happening, is that rows other than the filtered ones are being changed by the change list edit. For affected objects that should not have been affected I see messages in their history like:
Changed avail and id.
Although id was not actually changed -- I think that's an indication that the hidden id field for the object didn't match up with the value in the queryset used by POST...but the admin went ahead and changed the other data (avail) anyway.