[Zope-dev] Bug? Handling of attribute names and default values

Max M maxm at mxm.dk
Fri Nov 14 01:57:30 EST 2003


Tres Seaver wrote:

> Can you double check that it is actually the default value, and not a
> trailing empty line (I'm guessing that you are posting to 'addTeacher'
> from a form with a control like:  '<textarea
> name="teachers:lines">...').


The complete content of the form is below, and it is very simple. I am 
very certain that it is not the problem. I have also checked that it 
isn't an extra checkbox that has been sneaking in there.

I solved the problem by removing the line with the default value in the 
form, and changing the action method to::

     def editTeachersAction(self, teachers=None, REQUEST=None):
	"Code"
         if not teachers:
             teachers = []

Which is a better way to do it anyway. But that still leaves the bug in 
the form handling of Zope.

regards Max M


####################

     [<a href="edit">Back</a>]<br/><br/>

     <div class="primary_h1">Undervisere tilknyttet uv-forløbet</div>
     <br>

     <form action="editTeachersAction" method="post" name="form"
           tal:define="allTeachers here/users/getAllTeachers">

         <input type="hidden" name="teachers:list:default" value="">

         <span tal:repeat="teacher 
python:here.uddan_teacher.getSmartList(here, allTeachers)">
                 <input type="checkbox" name="teachers:list" value="path"
                        tal:attributes="value teacher/path; checked 
teacher/selected">
                 <span tal:content="teacher/title">title</span><br>
         </span>

         <br>
         <br>
         <input type="submit" value=" Gem ">
     </form>











> 
> E.g, change the 'teachers:list:default' value to some other string, and
> see if that value propagates.
> 
> Either way, as a robustness measure I would recommend adding some input
> checking to 'addTeacher', e.g.:
> 
>     def addTeacher( self, teachers ):
> 
>         """ Add one or more teachers.
>         """
>         teachers = filter( None, teachers ) # strip empty lines
>         # your processing here
> 
> Tres.





More information about the Zope-Dev mailing list