Thanks. Now the pages display successfully that show the poll results
and the voting options: http://localhost:8080/Polls/default/detail/9
and http://localhost:8080/Polls/default/results/9.
But when I voted, I got errors with http://localhost:8080/Polls/default/detail/9
- my vote wasn't saved. The error said, "non supported on GAE."

(I should say that I have two web2py applications deployed at once on
my local GAE environment: the original Polls and my own variation on
it which adds forms for adding poll questions and voting choices. So
that's how I'm adding question and choice records for Polls. I could
imagine that having two applications using the same tables could be a
problem.)

-------

Controller:
@auth.requires_login()
def detail():
    poll_id=request.args(0)
    p = db.poll[poll_id]
    if not p: raise HTTP(404)
# Has this person allready voted???
    if db(db.recorded_votes.poll==p.id)
(db.recorded_votes.voter==auth.user.id).select():
        session.flash="You have already voted on this question"
        redirect(URL(r=request,f='results',args=p.id))
# add this
    if request.vars:
        selected_choice = db.choice[request.vars.choice]
        if not selected_choice or selected_choice.poll!=p.id:
            session.flash="Please select a valid choice"
            redirect(URL(r=request,f='detail',args=p.id))
        else:
            selected_choice.update_record(votes=db.choice.votes+1)
# add the following line after adjusting the detail view below

db.recorded_votes.insert(voter=auth.user.id,poll=p.id)
            redirect(URL(r=request,f='results',args=p.id))
    return dict(poll=p)

--------

Traceback (most recent call last):
  File "/home/michael/mycode/google_appengine/web2py/gluon/
restricted.py", line 173, in restricted
    exec ccode in environment
  File "/home/michael/mycode/google_appengine/web2py/applications/
Polls/controllers/default.py:detail", line 93, in <module>
  File "/home/michael/mycode/google_appengine/web2py/gluon/
globals.py", line 96, in <lambda>
    self._caller = lambda f: f()
  File "/home/michael/mycode/google_appengine/web2py/gluon/tools.py",
line 1850, in f
    return action(*a, **b)
  File "/home/michael/mycode/google_appengine/web2py/applications/
Polls/controllers/default.py:detail", line 32, in detail
  File "/home/michael/mycode/google_appengine/web2py/gluon/sql.py",
line 3145, in <lambda>
    i = id, **a: update_record(c, t, i, a)
  File "/home/michael/mycode/google_appengine/web2py/gluon/sql.py",
line 3268, in update_record
    table._db(table.id==id).update(**c)
  File "/home/michael/mycode/google_appengine/web2py/gluon/contrib/
gql.py", line 718, in update
    table[field].type, db)
  File "/home/michael/mycode/google_appengine/web2py/gluon/contrib/
gql.py", line 440, in obj_represent
    raise SyntaxError, "non supported on GAE"
SyntaxError: non supported on GAE


On Mar 4, 1:13 am, "mr.freeze" <[email protected]> wrote:
> I think the problems is that poll doesn't have a foreign key to
> choice, it's the other way around. Try this:
> {{poll_choices = db(db.choice.poll==poll.id).select()}}
> {{ for choice in poll_choices: }}
>     <li>{{=choice.choice }} -- {{=choice.votes }} vote{{if
> choice.votes!=1:}}s{{pass}}</li>
> {{ pass }
>
> On Mar 3, 11:51 pm, mdmcginn <[email protected]> wrote:
>
>
>
> > db.define_table('poll',
> >         Field('question',length=200),
>
> > Field('pub_date','datetime',default=request.now,writable=False))
>
> > db.define_table('choice',
> >         Field('poll',db.poll),
> >         Field('choice',length=200),
> >         Field('votes','integer',default=0))
>
> > db.define_table('recorded_votes',
> >     Field('poll',db.poll),
> >     Field('voter',db.auth_user))
>
> > On Mar 1, 9:37 pm, "mr.freeze" <[email protected]> wrote:
>
> > > Can we see your model?
>
> > > On Mar 1, 9:05 pm, mdmcginn <[email protected]> wrote:
>
> > > > From index.html:
> > > > Latest Polls
> > > > Answer the question [vote] [results]
>
> > > > When I click on [results], I'm sent 
> > > > tohttp://localhost:8080/Polls/default/results/67
>
> > > > ERROR    2010-03-02 02:54:08,609 restricted.py:53] In FILE: /home/
> > > > michael/mycode/google_appengine/web2py/applications/Polls/views/
> > > > default/results.html
>
> > > > Traceback (most recent call last):
> > > >   File "/home/michael/mycode/web2py/gluon/restricted.py", line 173, in
> > > > restricted
> > > >     exec ccode in environment
> > > >   File "/home/michael/mycode/google_appengine/web2py/applications/
> > > > Polls/views/default/results.html", line 64, in <module>
> > > >   File "/home/michael/mycode/web2py/gluon/sql.py", line 3041, in
> > > > select
> > > >     query = self._select(*fields, **attributes)
> > > >   File "/home/michael/mycode/web2py/gluon/sql.py", line 2932, in
> > > > _select
> > > >     raise SyntaxError, 'Set: no tables selected'
> > > > SyntaxError: Set: no tables selected
>
> > > > INFO     2010-03-02 02:54:08,610 gaehandler.py:55] **** Request:
> > > > 286.06ms/50.00ms (real time/cpu time)
> > > > INFO     2010-03-02 02:54:08,618 dev_appserver.py:3246] "GET /Polls/
> > > > default/results/67 HTTP/1.1" 500 -

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" 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/web2py?hl=en.

Reply via email to