Opened 9 years ago
Closed 9 years ago
#27957 closed Cleanup/optimization (fixed)
Remove technical terms from InlineForeignKeyField/ModelMultipleChoiceField error messages
| Reported by: | Jon Dufresne | Owned by: | nobody | 
|---|---|---|---|
| Component: | Forms | Version: | dev | 
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Ready for checkin | |
| Has patch: | yes | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description
Some error messages in django.forms.models use technical jargon that is often very confusing to normal web users. For example, the words "foreign key" and "primary key". I think the error messages should target a general web audience instead of developers.
Scenario: A ModelForm is used to submit GET requests. A user copies a URL with a query string and passes it to a friend. Upon entering the URL, a typo is introduced. This typo results in an error that could read:
"123a" is not a valid value for a primary key.
Most web users have no idea what a primary key is and therefore will be confused by what steps to take to fix the error. I think Django should avoid technical database terms in user facing error messages.
I'm proposing the following changes, but I'm very open to alternative phrasing that would give a more useful error message in more situations:
"%(pk)s" is not a valid value for a primary key.
Becomes
"%(pk)s" is not a valid value.
And
The inline foreign key did not match the parent instance primary key.
Becomes
The inline value did not match the parent instance.
Change History (4)
comment:1 by , 9 years ago
| Has patch: | set | 
|---|
comment:2 by , 9 years ago
| Triage Stage: | Unreviewed → Accepted | 
|---|
comment:3 by , 9 years ago
| Summary: | User facing error messages should avoid technical jargon → Remove technical terms from InlineForeignKeyField/ModelMultipleChoiceField error messages | 
|---|---|
| Triage Stage: | Accepted → Ready for checkin | 
PR