Opened 10 years ago

Closed 10 years ago

#2841 closed defect (fixed)

Validator documentation is contradictory regarding required fields

Reported by: dave AT Owned by: Malcolm Tredinnick
Component: Validators Version: master
Severity: normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:


From the validators documentation:

"After a form has been submitted, Django first checks to see that all the required fields are present and non-empty. For each field that passes that test and if the form submission contained data for that field, all the validators for that field are called in turn"

The first sentence implies that required field checking is a separate step, before any validators are run. The second is what actually appears to happen: is_required check, then validators, for each field in turn.

It might be worth rewording to clarify. Perhaps:

"After a form has been submitted, Django validates each field in turn. First, if the field is required, Django checks that it is present and non-empty. Then, if that test passes and the form submission contained data for that field, all the validators for that field are called in turn."

It would also be worth mentioning that custom validators can't rely on ALL required fields in the form being present when the validator runs: only the field to which the validator is attached.

Alternatively, make is_required checking truly a separate initial step and change the documentation differently...

Attachments (1)

forms.diff (1.0 KB) - added by Simon G. <dev@…> 10 years ago.

Download all attachments as: .zip

Change History (4)

comment:1 Changed 10 years ago by Malcolm Tredinnick

Owner: changed from Adrian Holovaty to Malcolm Tredinnick

You're right. The first sentence is ambiguous (you just have to read it with my twist of mind). I'll fix that.

Let's just address the documentation issue here. The requirement checking vs. validation pass isn't going to change right now, since it's something we need to look at in the manipulator rewrite, so let's leave it until then.

Changed 10 years ago by Simon G. <dev@…>

Attachment: forms.diff added

comment:2 Changed 10 years ago by Simon G. <dev@…>

Triage Stage: UnreviewedReady for checkin

comment:3 Changed 10 years ago by Russell Keith-Magee

Resolution: fixed
Status: newclosed

(In [4886]) Fixed #2841 -- Clarified documentation on procedure for field validation. Thanks, dave@….

Note: See TracTickets for help on using tickets.
Back to Top