Проблема запроса от модельного объекта - PullRequest
0 голосов
/ 06 февраля 2011

Я пытаюсь использовать пилоны с SqlAlchemy (через эликсир).

Вот мой testdb / model / entity.py:

from elixir import *

metadata.bind = "mysql://testdb:hundertwasser@localhost/testdb"
metadata.bind.echo = True

class Post(Entity):
    text = Field(Unicode(128))

А вот и контроллер:

import logging

from pylons import request, response, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect

from testdb.lib.base import BaseController, render

log = logging.getLogger(__name__)

from testdb.model.entities import *

class MainController(BaseController):

    def index(self):
        c.posts = Post.query.all()
        print "Test"
        return render('/index.mako')

    def submit(self):
        post = Post()
        post.text = request.POST.get['text']
        session.commit()

Когда я запускаю приложение, я получаю сообщение об ошибке:

AttributeError: type object 'Post' has no attribute 'query'

Кто-то знает, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

Ответ таков:

entity.py отсутствует следующие две строки внизу:

setup_all()
create_all()
0 голосов
/ 07 февраля 2011

Я плохо знаю Эликсир, но недостаточно ли добавить в .ini следующее?

sqlalchemy.url = mysql://user:pass@localhost/dbname?charset=utf8&use_unicode=0
sqlalchemy.pool_recycle = 3600

Все, что нужно после ? - это избежать проблем с кодированием. Вторая строка запрещает MySQL закрывать неактивные соединения (фактически, они переподключаются каждый час).

...