[Zope] Fw: [Zope] Incrementing a form field

Andy McKay andym@ActiveState.com
Mon, 11 Dec 2000 11:32:48 -0800


You could use FSCounter to do your counting:
http://www.zope.org/Members/andym/wiki/FSCounter.

There is a How-To on using unique_ids:
http://www.zope.org/Members/andym/FSCounter/unique_ids

In your code try explicilty using an int:

>   <dtml-call "REQUEST.set('my_number', _.int(my_number) + 1)">
--
  Andy McKay, Developer.
  ActiveState.

----- Original Message -----
From: "César A. K. Grossmann" <ckant@fazenda.gov.br>
To: <zope@zope.org>
Sent: Monday, December 11, 2000 10:44 AM
Subject: [Zope] Incrementing a form field


> Hi!
>
> I have a form that is used to insert some records to a database, and one
> of the fields is a sequence number. I want to increment this number when
> the form is used, unless is the first time it is loaded.
>
> The form (idea copied from the SmartForms HOWTO) have the name
> "Register", and is something like this:
>
> <dtml-var standard_html_header>
>
> <dtml-if "REQUEST.REQUEST_METHOD=='POST'">
>   Record inserted.
> </dtml-if>
>
> <dtml-if my_number>
>   <dtml-call "REQUEST.set('my_number', my_number + 1)">
> <dtml-else>
>   <dtml-call "REQUEST.set('my_number', 1)">
> </dtml-if>
>
> <form action="Register" method="POST">
> A Field <input name="my_field" value="some value"><br>
> A Number <input name="my_number" value="<dtml-var my_number>"><br>
> <input type="submit" value="OK">
> </form>
>
> <dtml-var standard_html_footer>
>
> It work for the first load, but when I press the OK button, I get an
> error message:
>
> Error Type: TypeError
> Error Value: illegal argument type for built-in operation
>
> The traceback:
>
> <!--
> Traceback (innermost last):
>   File /usr/lib/python1.5/site-packages/ZPublisher/Publish.py, line 222,
> in publish_module
>   File /usr/lib/python1.5/site-packages/ZPublisher/Publish.py, line 187,
> in publish
>   File /usr/share/zope/lib/python/Zope/__init__.py, line 221, in
> zpublisher_exception_hook
>     (Object: Traversable)
>   File /usr/lib/python1.5/site-packages/ZPublisher/Publish.py, line 171,
> in publish
>   File /usr/lib/python1.5/site-packages/ZPublisher/mapply.py, line 160,
> in mapply
>     (Object: Register)
>   File /usr/lib/python1.5/site-packages/ZPublisher/Publish.py, line 112,
> in call_object
>     (Object: Register)
>   File /usr/share/zope/lib/python/OFS/DTMLMethod.py, line 172, in
> __call__
>     (Object: Register)
>   File /usr/lib/python1.5/site-packages/DocumentTemplate/DT_String.py,
> line 528, in __call__
>     (Object: Register)
>   File /usr/lib/python1.5/site-packages/DocumentTemplate/DT_Util.py,
> line 342, in eval
>     (Object: REQUEST.set('my_number', my_number + 1))
>     (Info: REQUEST)
>   File <string>, line 0, in ?
> TypeError: (see above)
>
> -->
>
> What is wrong? How do I increment the value?
>
> []s
> --
>  +---------------------------------+---------------------------------+
>  | César A. K. Grossmann           | Capacitação Solidária           |
>  | ckant@fazenda.gov.br            | http://www.uol.com.br/umminuto/ |
>  | http://members.xoom.com/ckant/  | Clique e doe - é de graça       |
>  +---------------------------------+---------------------------------+
>        http://www.halcyon.com/sciclub/cgi-pvt/instr/instr.html
>   A ética do iG: http://antispambr.abranetrj.org.br/not-20001023.html
>
> One Bell System - it used to work before they installed the Dimension!
>
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )
>