You need to reach the incremental method on the db object from a
webapp.RequestHandler. From the source
http://google-app-engine-samples.googlecode.com/svn/trunk/sharded-counters/main.py
the counter-main-class is defined as:
import generalcounter
import simplecounter
class CounterHandler(webapp.RequestHandler):
"""Handles displaying the values of the counters
and requests to increment either counter.
"""
def get(self):
template_values = {
'simpletotal': simplecounter.get_count(),
'generaltotal': generalcounter.get_count('FOO')
}
template_file = os.path.join(os.path.dirname(__file__),
'counter.html')
self.response.out.write(template.render(template_file,
template_values))
def post(self):
counter = self.request.get('counter')
if counter == 'simple':
simplecounter.increment()
else:
generalcounter.increment('FOO')
self.redirect("/")
So just make a post like the example eg. the simple counter:
<form action="" method="post">
<p><input type="hidden" name="counter" value="simple" /></p>
<p><input type="submit" value="Increment Simple" /></p>
</form>
And rewrite your class to your purpose by following the counter-
example. If it to any help this i the source
http://google-app-engine-samples.googlecode.com/svn/trunk/sharded-counters/simplecounter.py
Did that make sence? :)
On Jun 28, 8:13 am, xiaojay <[email protected]> wrote:
> Hi guys,
>
> I am new to gae and knew count() only return the exact num only when
> the num is less than 1000
> and I read the article about sharded counter
> here:http://code.google.com/intl/en/appengine/articles/sharding_counters.html.
>
> so I start to use it in my own project
> like this:
>
> import counter
> class MyModel(db.Model):
> name = db.StringProperty()
>
> #overwrite put so when new one is saved, counter + 1
> def put(self):
> def txn():
> counter.increment('MyModel')
> return super(Mymodel, self).put()
> return db.run_in_transaction(txn)
>
> howerver, when I test this code, get a error "BadRequestError: Nested
> transactions are not supported.
> "
> I know why. howerver, i can not figure out how to go through it
> beacuse i want save a entity and increase counter in a transaction
>
> any ideas?
> Thanks in advance
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" 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/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---