.. -*- coding: utf-8 -*-
Frequently Asked Questions
==========================
* Why does not LAX have a template language ?
It does. Actually, you can use your preferred template language if you
want. [explain how to use a template language]
The reason template languages are not used in this book is that
experience has proved us that using pure python was more efficient.
* Why do you think using pure python is better than using a template language ?
[copy answer from forum]
code is easier to maintain, does not have to learn a new dialect
each time, real function/classes etc -> real development
* Why do you use the GPL license to prevent me from doing X ?
[copy answer from forum]
* LAX looks pretty recent. Is it stable ?
[answer that framework has evolved over the past seven years and that
data migrated from one schema to the other ever since]
* Why is the RQL query language looking similar to X ?
[copy answer from forum, explain why similar to sparql and why better
than django and SQL]
* which ajax library
[we use mochikit and things on top of that]
* `Error while publishing rest text ...`
While modifying the description of an entity, you get an error message in
the application `Error while publishing ...` for Rest text and plain text.
The server returns a traceback like as follows ::
2008-10-06 15:05:08 - (erudi.rest) ERROR: error while publishing ReST text
Traceback (most recent call last):
File "/home/sandrine/src/blogdemo/ginco/common/rest.py", line 217, in rest_publish
File "/usr/lib/python2.5/codecs.py", line 817, in open
file = __builtin__.open(filename, mode, buffering)
TypeError: __init__() takes at most 3 arguments (4 given)
This can be fixed by applying the patch described in :
http://code.google.com/p/googleappengine/issues/detail?id=48
* What are hooks used for?
Les crochets sont appeles lorsqu'une requete RQL est executee. Cela
permet d'executer des actions specifiques lors d'un acces a la base
de donnees, ce qui donne un controle de la base de donnees afin de
prevenir l'insertion de `mauvaises` entites dans la base.
* When should you define an HTML template rather than define a graphical component?
Un template HTML ne peut contenir de logique, il ne permettra donc
que de definir une vue statique. Un composant permet lui de gerer
plus de logique et d'operations sur le contexte dans lequel il
s'applique. Il faut donc bien reflechir avant de decider de l'un ou
de l'autre, mais vous avez la possibilite de choisir.
* How to update a database after a schema modification?
Cela dépend de ce qui a été modifié dans le schéma.
* Modification d'une relation non finale
* Modification d'une relation finale
[TO COMPLETE]
* How to create an anonymous user?
Cela vous permet d'acceder a votre site sans avoir besoin de vous authentifier.
Dans le fichier ``all-in-one.conf`` de votre instance, définir l'utilisateur
anonyme en initilisant les valeurs des variables suivantes ::
# login of the Erudi user account to use for anonymous user (if you want to
# allow anonymous)
anonymous-user=anon
# password of the Erudi user account matching login
anonymous-password=anon
Vous devez aussi vous assurer que cet utilisateur `anon` existe dans la base
de données, le plus simple étant de s'identifier sur votre application en
administrateur et de rajouter l'utilisateur `anon` via l'interface d'administration.
* What is the difference between `AppRsetObject` and `AppObject` ?
La différence entre la classe `AppRsetObject` et la classe `AppObject` est que
les instances de la premières sont séléctionnées pour une requête et un "result
set" et alors que les secondes ne sont séléctionnées qu'en fonction de leur
identifiant.