2015-04-05 2 views
2

Les docs dire à mettre quelque part:Où mettre setup_schema automatique pour ColanderAlchemy + Pyramide

from sqlalchemy import event 
from colanderalchemy import setup_schema 
event.listen(mapper, 'mapper_configured', setup_schema) 

Où dois-ce aller à Pyramid? Dois-je utiliser des événements Pyramid au lieu de ceux de SQLAlchemy?

Quand j'ai essayé de le mettre en haut du fichier models.py, il se plaignait de ne pas exister mapper; devrais-je encore utiliser ça?

Répondre

1

Vous devez utiliser le SQLAlchemy events pour savoir ce qui se passe dans SQLAlchemy (ils ne se rapportent pas du tout aux événements de la pyramide).

La documentation du ColanderAlchemy est source de confusion; ce qu'ils appellent un mapper ici est votre classe de modèle (il est pas un mappeur).

Ainsi, dans vos modèles que vous devriez faire quelque chose comme:

class MyModelClass(Base): 
    ... 

event.listen(
    MyModelClass, 
    "mapper_configured", 
    setup_schema) 
+1

Ce sera amélioré dans la documentation [peu] (https://github.com/stefanofontanelli/ColanderAlchemy/pull/82) une fois fusionné. N'hésitez pas à apporter des corrections comme celle-ci au code. Vous pouvez suggérer d'autres améliorations aussi! – davidjb

1

La suite de test montre fonctionner comme ceci:

from sqlalchemy import event 
from colanderalchemy import setup_schema 
from sqlalchemy.orm import mapper 

event.listen(mapper, 'mapper_configured', setup_schema) 

S'il vous plaît laissez-moi savoir si cela pour vous fixe et je peut aller mettre à jour la documentation en conséquence.

+0

Ouais cela semble fonctionner. Merci. Le problème avec les docs est (autre que ce problème d'importation) que je ne sais pas quoi mettre ensuite; c'est-à-dire que j'essaie d'utiliser la pyramide, sqlalchemy et de déformer pour la première fois. Avant d'aller trop loin, je dois maintenant apprendre la passoire. Ensuite, pour accélérer, je dois maintenant apprendre la colanderalchimie. Il serait vraiment utile si les colanderalchemy docs (comme colanderalchemy est le plus spécialisé des composants) vient de dire comment enregistrer les modèles (fait), puis quoi mettre dans mon view_config pour obtenir une forme de se déforment dans un modèle, tout travail , puis validez la réponse. –

+0

Vous voudrez peut-être regarder 'pyramid_deform'. Je l'ai trouvé trop restrictif pour mes utilisations, mais cela en fait un moyen facile d'incorporer la déformation dans la pyramide. –