Hello,

So I am not a Python programmer, though I am currently trying to pick
it up.

My question is whether there is a way I can stash all my named
arguments in a dictionary and then pass that off to the GQL query
somehow?

What I am trying to do is dynamically generate my GQL queries based on
how my user fills-out a form.

so here's the constructor I am calling:  class GqlQuery(query_string,
*args, **kwds)

Instead of passing a bunch of arguments in here, is there a way to
pass or finesse a dictionary object into those arguments?

Being new to Python I was hoping to find a bind() method that accepted
a dictionary as a parameter and took care of this for me.

Here's some contrived sample code to illustrate my question:

filters = {}
whereSection = "WHERE "

if (name != None):
    if (len(filters) > 0):
            whereSection += "AND "
    whereSection += "name = :name "
    filters['name'] = name

if (busRoute != None):
    if (len(filters) > 0):
            whereSection += "AND "
    whereSection += "routeNumber = :routeNumber "
    filters['routeNumber'] = busRoute.number

if (len(filters) > 0):
    busesDriven = BusTraffic.gql(whereSection + "ORDER BY yearBuilt",
filters)


Since that does not work as written, is there a way to get filters
into a format the **kwds varargs param in the prototype above
expects?  Seems like there ought to be, if only I had enough of a
handle on Python.  If not, would it be a useful constructor for the
AppEngine folks to implement?:

class GqlQuery(query_string, args_dictionary)


My interim solution is to just have a GQL statement for each number of
bind arguments, which is hacky, but will work for now.

Thanks!

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to