On 3/13/06, limodou <[EMAIL PROTECTED]> wrote:
> Maybe or maybe not. What django has implemented is exactly as what I
> said, I think the ways is good. And I remember there was a discussion
> about js invalidation, why we need this. Because we want to make
> mistakes can be found early, but not until the data will be saved.

As I see it, the question here is which of two options we want to take:

1. Validation is performed when you try to save an object; if
validation fails, you send back some error messages and try again with
corrected data.

2. One or more extra layers are placed between data entry and saving
the object; different layers do different types of validation, and any
one of them can kick you back out to the data-entry layer.

Option 1 is what we seem to be heading toward with validation-aware
models, and I think it's good for a couple of reasons:

* It's conceptually simpler; instead of worrying about which
validation layer you got down to before an error occurred, you only
have to worry about two states: success and failure.

* It's more logical; I still don't see any good reason why information
about how to validate an instance of a model shouldn't be part of the
model.

* It's better from an end-user standpoint; to see why, imagine that
instead we have a system with multiple layers which do validation. In
this case, an end user creating or editing an object may make a
mistake in entering the data, and be presented with a set of errors.
He corrects them and tries again to submit the data, but this time it
comes back with a different set of errors that have been present all
along, but were never reported because the data never made it to the
layer that would have caught them before. This poor user would become,
understandably, frustrated that he wasn't told about these errors the
first time he tried to submit the data. When validation is all in the
same place, this will never be a problem because all errors will be
caught and reported each time the data is submitted.


--
"May the forces of evil become confused on the way to your house."
  -- George Carlin

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers
-~----------~----~----~----~------~----~------~--~---

Reply via email to