ImportError за Django Piston манипулатор, който не е свързан с модел

Създадох персонализиран манипулатор (CustomHandler), който не е свързан с модел в ORM и мисля, че е монтиран правилно, но получавам ImportError: cannot import CustomHandler, когато се опитвам да го импортирам в моя resources.py . Ето моята настройка:

custom_handlers.py:

from piston.handler import BaseHandler

class CustomHandler(BaseHandler):
    allowed_methods = ('GET',)

    def read(self, request):
        return 'test'

resources.py:

from piston.resource import Resource
from piston.utils import rc
import simplejson as json
from api.authentication import DjangoAuthentication
from api.handlers import CustomHandler # ERROR THROWN HERE

auth = DjangoAuthentication(realm='...')

class JSONResource(Resource):
    def determine_emitter(self, request, *args, **kwargs):
        """
        Default to the json emitter.
        """
        try:
            return kwargs['emitter_format']
        except KeyError:
            pass
        if 'format' in request.GET:
            return request.GET.get('format')
        return 'json'

    def form_validation_response(self, e):
        """
        Turns the error object into a serializable construct.
        """
        resp = rc.BAD_REQUEST
        json_errors = json.dumps(
            dict(
                (k, map(unicode, v))
                for (k, v) in e.form.errors.iteritems()
            )
        )
        resp.write(json_errors)
        return resp


custom_handler = JSONResource(CustomHandler, authentication=auth)

urls.py:

from django.conf.urls.defaults import patterns, url

from api.resources import custom_handler

urlpatterns = patterns('',
    url(r'^things/$', custom_handler),
)

АКТУАЛИЗАЦИЯ: Опитах ръчно да компилирам pys в pycs без успех. Прочетох това и в Документи на Piston:

Когато създадете манипулатор, който е свързан с модел, Piston автоматично ще го регистрира (чрез метаклас.)

Но не мога да намеря нищо в документите относно създаването на манипулатор, който не е обвързан с модел, по-специално как да го регистрирам.


person Gady    schedule 05.02.2013    source източник


Отговори (1)


Трябваше да добавя from api.handlers.custom_handlers import CustomHandler към api/handlers/__init__.py

person Gady    schedule 05.02.2013