2010-09-22 24 views
2

J'ai ce modèle dans web2py DAL:problème comparant les champs avec web2py dans GAE

db.define_table('category', 
    Field('name','string'), 
    format='%(name)s' 
) 

db.define_table('uploaded_question', 
    Field('text','string'), 
    ... 
    Field('category', 'string')  
) 

Ce:

db.category(db.category.name == uploaded_question.category) always 

retours dans aucun bac à sable GAE (il fonctionne très bien dans SqlLite).

Comment devrais-je adapter cette phrase pour travailler dans GAE?

+0

Je pense que Field ('category', 'string') devrait être Field ('category', db.category) – mdipierro

+0

Dans ce cas, rows = db (db.category.id == db.uploaded_question.category) .select() – mdipierro

Répondre

2

Je ne peux pas dire du code partiel, mais il semble que vous faites deux choses: 1) vous dénormalisation (db.uploaded_question.category est une chaîne et non une référence) 2) vous faites une jointure interne (même si la catégorie n'est pas une référence). Votre syntaxe est incorrecte doit être

rows = db(db.category.name == db.uploaded_question.category).select() 

Le problème est que vous ne pouvez pas JOIN sur GAE. Ils ne supportent pas les jointures.

De toute façon, il n'est pas clair pourquoi vous faites une jointure si vous avez dénormalisé, alors peut-être que j'ai mal compris.

Nous nous ferons un plaisir de vous aider sur la liste de diffusion web2py.

+1

Parfait! Merci beaucoup! Je suis en web2py maintenant – user454928