Opened 6 years ago
Closed 6 years ago
#29447 closed Bug (fixed)
RelatedManager.set() doesn't pass bulk keyword argument to clear()
Reported by: | Jeremy Lainé | Owned by: | Alexandr Tatarinov |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 2.0 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
For reverse many-to-one relations, the set
method's bulk
keyword argument is passed down to the add()
and remove()
methods. It isn't however passed down to the clear()
method:
This looks like a bug, as passing bulk=False, clear=True results in the following behavior:
- clear() is invoked in "bulk" mode, not triggering signals
- add() is invoked in "non-bulk" mode, signals are triggered
Admitedly, I'm not too sure why you would want to do this, but at the very least the docs should mention if this combination is unsupported.
I spotted this while reading the related_descriptors.py
code to fix #29440.
Change History (6)
comment:1 by , 6 years ago
Description: | modified (diff) |
---|
comment:2 by , 6 years ago
comment:3 by , 6 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:4 by , 6 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Note:
See TracTickets
for help on using tickets.
I would like to work on this if confirmed as bug. Seems pretty straightforward to fix. Also I think we should add some tests to check number of queries issued.