Friends,

   I don't know if my solution is the best way to solve, but...follow
my GAEForm implementation class:

###### gae_form.py

from web.form import *
import logging
from google.appengine.ext import db

def attrget(obj, attr, value=None):
    if isinstance(obj,db.Model):
        try:
            if attr == 'key':
                return obj.key()
            gae_attribute = getattr(obj,attr)
            if isinstance(gae_attribute,db.Model):
                id_reference = gae_attribute.key().id()
                return id_reference
            else:
                return gae_attribute
        except Exception, ex:
            logging.debug(ex)
    else:
        if hasattr(obj, 'has_key') and obj.has_key(attr): return
obj[attr]
        if hasattr(obj, attr): return getattr(obj, attr)
    return value

class GAEForm(Form):
    pass

###### forms.py My forms declaration form file.

import gae_form as form

import data

def getPostForm():

    category_list = data.all_categories()

    category_options = [(row.key().id(), row.title) for row in
category_list]

    post_form = form.Form(

        form.Hidden('key'),

        form.Dropdown('category', category_options),

        form.Textbox('title'),

        form.Textarea('body'),

        form.Dropdown('language', [('pt', 'Portuguese'), ('en',
'English')]),

        form.Button('Submit!')

    )

    return post_form

Now is running ok. If someone has a better suggestion, please, I'm
open to opinions and other solutions.

Really, the web.py is simple, elegant and a efficient solution for web
development in python.

Thanks for all help.
-- Leandro.

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

Reply via email to