Here is a more concrete proposal based on Loic's comment in the ticket:

A normal deprecation cycle based on the value of a new `
use_required_attribute` boolean attribute on forms.

To deprecate you could do:

class form.Form(object):
    #...
    use_required_attribute = None

class BoundField(object):
    #...
    def as_widget():
        if self.form.use_required_attribute is None:
            warnings.warn("The required attribute will be turned on by default 
in Django X.X unless you opt-out.")
        elif form.use_required_attribute:
            attrs['required'] = True

Now what happens next depends on the actual goal, do we want to use 
use_required_attribute as a permanent way to control this feature, or as a 
mere deprecation tool.

Personally I'm (Loic) not thrilled by this feature, although I know lot of 
people will want it, so I'd like to keep the switch.

Another point of interest, right now there is no way to tell a form that it 
should render as HTML4 or HTML5. When we discussed 
#20684<https://code.djangoproject.com/ticket/20684> we 
acknowledged that if someone really cared about HTML4 validation, they 
could use required="required" instead of required=True, but if this becomes 
the default and we kill use_required_attribute, we'd be outputting HTML5.

On Friday, April 11, 2014 3:51:41 AM UTC-4, anubhav joshi wrote:
>
>
>
> On Friday, April 11, 2014 4:57:33 AM UTC+5:30, Gregor Müllegger wrote:
>>
>> I think adding the `required` attribute but ignoring the other possible 
>> html form validations (like `min` and `max` [1] for <input> that are used 
>> by the forms.IntegerField) seems a bit half-hearted.
>>
>> My opinion is that having the required attribute is pretty cool, but 
>> should come with all other possible validations baked in then.
>> django-floppyforms already includes those validations already in the HTML 
>> output of forms and it turns out to be quite useful in many situations. 
>> Even if you turn of the browser validation by adding the novalidate 
>> attribute to the <form> tag, it's good to have this meta data in the HTML 
>> representation, e.g. for styling.
>>
>> Gregor
>>
>
> Thanks Gregor, but I think here we first need to make it clear do we 
> really want it. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/738084b9-e1b6-410c-8b35-f3ca0598aed4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to