Ce que je veux faire est de construire des mini cms qui contiennent des pages avec un uri.Pourquoi la requête GQL ne correspond pas?
La dernière route de mon URL urls.py pointe vers une fonction dans mon fichier views.py, qui vérifie dans le magasin de données s'il existe une page disponible avec le même uri de la requête en cours et, le cas échéant, affiche la page.
J'ai un modèle:
class Page(db.Model):
title = db.StringProperty(required=True)
uri = db.TextProperty(required=True)
created = db.DateTimeProperty(auto_now_add=True)
modified = db.DateTimeProperty(auto_now=True)
content = db.TextProperty()
À mon avis:
def show(request):
page = db.GqlQuery('SELECT * FROM Page WHERE uri=:uri', uri=request.path).get()
if page is None:
return http.HttpResponseNotFound()
else:
return respond(request, 'pages_show', {'content': request.path})
Et j'ai ajouté une entité '/ travail' comme uri au datastore.
Même lorsque request.path est exactement '/ work', la requête ne renvoie pas de correspondance.
Merci pour tous les conseils que vous pouvez me donner!
Et oui, je suis un python noob, App Engine est parfait pour enfin apprendre la langue.
Vous n'avez pas vraiment besoin de la propriété uri du tout. Si vous créez des entités Page avec leur nom-clé égal à l'URI, vous pouvez le rechercher avec Page.get_by_key_name (uri), et vous obtenez l'unicité gratuite! –
Ah génial idée Arachnide. Je veux +1 pour votre conseil :-) Merci! –
Merci beaucoup. Je faisais la même chose et je ne comprenais pas pourquoi la requête ne fonctionnait pas. Votre message m'a sauvé de devenir fou. – ibiza