[Django] #29516: Improve error message when passing incorrect kwarg to model constructor

32 views
Skip to first unread message

Django

unread,
Jun 22, 2018, 11:12:51 AM6/22/18
to django-...@googlegroups.com
#29516: Improve error message when passing incorrect kwarg to model constructor
-------------------------------------------+-------------------------------
Reporter: Federico Bond | Owner: (none)
Type: Uncategorized | Status: new
Component: Error reporting | Version: master
Severity: Normal | Keywords: error message
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------------+-------------------------------
When passing an incorrect keyword argument to a model constructor, the
__init__ method will throw an error like this:

{{{
TypeError: 'x' is an invalid keyword argument for this function
}}}

It takes a couple of seconds to notice what "this function" refers to,
especially if the call is behind some abstraction like factory_boy. You
have to scroll several levels up the stack trace to notice the offender. I
propose to change this message to:

{{{
TypeError: 'x' is an invalid keyword argument for ModelName
}}}

I can submit a pull request once the ticket is accepted.

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

Django

unread,
Jun 22, 2018, 11:20:19 AM6/22/18
to django-...@googlegroups.com
#29516: Improve error message when passing incorrect kwarg to model constructor
---------------------------------+--------------------------------------

Reporter: Federico Bond | Owner: (none)
Type: Uncategorized | Status: new
Component: Error reporting | Version: master
Severity: Normal | Resolution:

Keywords: error message | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+--------------------------------------

Comment (by Federico Bond):

Perhaps even better would be to imitate the default error message in
Python:

{{{
ModelName() got an unexpected keyword argument 'x'
}}}

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

Django

unread,
Jun 22, 2018, 12:14:49 PM6/22/18
to django-...@googlegroups.com
#29516: Rephrase error message when passing incorrect kwarg to model constructor
-------------------------------------+-------------------------------------
Reporter: Federico Bond | Owner: nobody
Type: | Status: new
Cleanup/optimization |
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: error message | Triage Stage: Accepted

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Tim Graham):

* owner: (none) => nobody
* type: Uncategorized => Cleanup/optimization
* stage: Unreviewed => Accepted
* component: Error reporting => Database layer (models, ORM)


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

Django

unread,
Jun 23, 2018, 6:09:33 AM6/23/18
to django-...@googlegroups.com
#29516: Rephrase error message when passing incorrect kwarg to model constructor
-------------------------------------+-------------------------------------
Reporter: Federico Bond | Owner: Federico
Type: | Bond
Cleanup/optimization | Status: assigned

Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: error message | Triage Stage: Accepted

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Federico Bond):

* status: new => assigned
* owner: nobody => Federico Bond


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

Django

unread,
Jun 23, 2018, 6:19:45 AM6/23/18
to django-...@googlegroups.com
#29516: Rephrase error message when passing incorrect kwarg to model constructor
-------------------------------------+-------------------------------------
Reporter: Federico Bond | Owner: Federico
Type: | Bond
Cleanup/optimization | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: error message | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Federico Bond):

* has_patch: 0 => 1


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

Django

unread,
Jun 25, 2018, 3:34:00 AM6/25/18
to django-...@googlegroups.com
#29516: Rephrase error message when passing incorrect kwarg to model constructor
-------------------------------------+-------------------------------------
Reporter: Federico Bond | Owner: Federico
Type: | Bond
Cleanup/optimization | Status: closed

Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution: fixed
Keywords: error message | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Claude Paroz):

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


Comment:

In [changeset:"4c36414323d9035a93a2b7a54ff5281116950fe1" 4c36414]:

Fixed #29517 -- Rephrased error message when passing incorrect kwarg to
model constructor

--
Ticket URL: <https://code.djangoproject.com/ticket/29516#comment:5>

Django

unread,
Jun 25, 2018, 9:41:10 AM6/25/18
to django-...@googlegroups.com
#29516: Rephrase error message when passing incorrect kwarg to model constructor
-------------------------------------+-------------------------------------
Reporter: Federico Bond | Owner: Federico
Type: | Bond
Cleanup/optimization | Status: closed
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution: fixed
Keywords: error message | 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:"e7185a6514ee83802f07ca1f6d2dff615b8fdfed" e7185a6]:
{{{
#!CommitTicketReference repository=""
revision="e7185a6514ee83802f07ca1f6d2dff615b8fdfed"
Refs #29516 -- Reverted inadvertent change in Model.__init__().
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/29516#comment:6>

Reply all
Reply to author
Forward
0 new messages