[Django] #26778: ModelSignal.connect() does not work when 'weak' is set to False and receiver is a local function

15 views
Skip to first unread message

Django

unread,
Jun 18, 2016, 3:54:12 PM6/18/16
to django-...@googlegroups.com
#26778: ModelSignal.connect() does not work when 'weak' is set to False and
receiver is a local function
----------------------------------------------+--------------------
Reporter: laevilgenius | Owner: nobody
Type: Bug | Status: new
Component: Database layer (models, ORM) | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 1
Easy pickings: 0 | UI/UX: 0
----------------------------------------------+--------------------
Since #26642 there seems to be a regression. '''ModelSignal.connect'''
doesn't take into account 'weak' argument.

Quick fix might look like this:
{{{
#!diff
--- a/django/db/models/signals.py
+++ b/django/db/models/signals.py
@@ -27,7 +27,7 @@ class ModelSignal(Signal):
return partial_method(sender)

def connect(self, receiver, sender=None, weak=True,
dispatch_uid=None, apps=None):
- self._lazy_method(super(ModelSignal, self).connect, apps,
receiver, sender, dispatch_uid=dispatch_uid)
+ self._lazy_method(super(ModelSignal, self).connect, apps,
receiver, sender, weak=weak, dispatch_uid=dispatch_uid)

def disconnect(self, receiver=None, sender=None, weak=None,
dispatch_uid=None, apps=None):
if weak is not None:
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/26778>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Jun 18, 2016, 7:07:26 PM6/18/16
to django-...@googlegroups.com
#26778: ModelSignal.connect() does not work when 'weak' is set to False and
receiver is a local function
-------------------------------------+-------------------------------------
Reporter: laevilgenius | Owner: timgraham
Type: Bug | Status: assigned
Component: Database layer | Version: 1.10
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 1 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by timgraham):

* status: new => assigned
* severity: Normal => Release blocker
* needs_better_patch: => 0
* needs_tests: => 1
* version: master => 1.10
* owner: nobody => timgraham
* needs_docs: => 0
* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/26778#comment:1>

Django

unread,
Jun 18, 2016, 7:31:44 PM6/18/16
to django-...@googlegroups.com
#26778: ModelSignal.connect() does not work when 'weak' is set to False and
receiver is a local function
-------------------------------------+-------------------------------------
Reporter: laevilgenius | Owner: timgraham
Type: Bug | Status: assigned
Component: Database layer | Version: 1.10
(models, ORM) |
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by timgraham):

* needs_tests: 1 => 0


Comment:

[https://github.com/django/django/pull/6802 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/26778#comment:2>

Django

unread,
Jun 18, 2016, 8:46:00 PM6/18/16
to django-...@googlegroups.com
#26778: ModelSignal.connect() does not work when 'weak' is set to False and
receiver is a local function
-------------------------------------+-------------------------------------
Reporter: laevilgenius | Owner: timgraham
Type: Bug | Status: closed

Component: Database layer | Version: 1.10
(models, ORM) |
Severity: Release blocker | Resolution: fixed

Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by GitHub <noreply@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"9bf8d50a678463a5a3cd52f10c830fe0ca65d2c6" 9bf8d50a]:
{{{
#!CommitTicketReference repository=""
revision="9bf8d50a678463a5a3cd52f10c830fe0ca65d2c6"
Fixed #26778 -- Fixed ModelSignal.connect() weak argument.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/26778#comment:3>

Django

unread,
Jun 18, 2016, 8:53:09 PM6/18/16
to django-...@googlegroups.com
#26778: ModelSignal.connect() does not work when 'weak' is set to False and
receiver is a local function
-------------------------------------+-------------------------------------
Reporter: laevilgenius | Owner: timgraham
Type: Bug | Status: closed
Component: Database layer | Version: 1.10
(models, ORM) |
Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"91d754eb2a109e5d15bdbedb3b945abc32425250" 91d754e]:
{{{
#!CommitTicketReference repository=""
revision="91d754eb2a109e5d15bdbedb3b945abc32425250"
[1.10.x] Fixed #26778 -- Fixed ModelSignal.connect() weak argument.

Backport of 9bf8d50a678463a5a3cd52f10c830fe0ca65d2c6 from master
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/26778#comment:4>

Reply all
Reply to author
Forward
0 new messages