#20703: Why django form.as_p call form.clean method when template renders?
-----------------------------------+----------------------------------
     Reporter:  max.kharandziuk@…  |      Owner:  nobody
         Type:  Uncategorized      |     Status:  new
    Component:  Template system    |    Version:  1.5
     Severity:  Normal             |   Keywords:  as_p clean templates
 Triage Stage:  Unreviewed         |  Has patch:  0
Easy pickings:  0                  |      UI/UX:  0
-----------------------------------+----------------------------------
 I have this sample of django code:


 {{{
 # views.py
     def test_view(request):
         form = TestForm(
             request.POST or { 'text': 'some text'},
         )
         data = {
             'form': form,
         }
         print 'before rendering'
         return render(request, 'test.html', data)

     # forms.py
     class TestForm(forms.Form):
         text = forms.CharField()

         def __init__(self, *args, **kwargs):
             print 'init'
             super(TestForm, self).__init__(*args, **kwargs)

         def clean(self):
             print 'in clean'

 }}}

 and this template:


 {{{
     #test.html
     <form id='test-form' method="post" action="some url"
 enctype="multipart/form-data">
         {{ form.as_p }}
         <input type="submit" value="Save"/>
     </form>
 }}}


 when i send get request to this file i have this output in console:

 > before rendering
 > init
 > in clean

 when I write {{ form.text }} instead of  {{ form.as_p }} I have only:

 > before rendering
 > init

 It seams to me that as_p method calls clean() internally in process of
 rendering template.
 Is it a bug or some undocumented feature?
 Should this side effect avoided?

 Version of Django==1.5.1

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

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/068.11a8168b7d007aa5f7ea9567119b8a1e%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to