Почему мой маршрут не работает?

Индексный маршрут работает, когда я перехожу в / home / index

Но не работает, почему я набираю / home / test

Что тут не так, очень запутались!

импорт журнала

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

из helloworld.lib.base импортировать BaseController, визуализировать

log = logging.getLogger (имя)

класс HelloController (BaseController):

def index(self):
    # Return a rendered template
    #return render('/hello.mako')
    # or, return a string
    return 'Hello World from index() action!'


def test(self):
return 'blah'

Я получаю такую ​​ошибку:

WebError Traceback:
⇝ NotImplementedError: Action u'test' is not implemented
View as:   Interactive  |  Text  |  XML (full)
URL: http://127.0.0.1:5000/hello/test
Module weberror.evalexception:431 in respond          view
>>  app_iter = self.application(environ, detect_start_response)
Module beaker.middleware:152 in __call__          view
>>  return self.wrap_app(environ, session_start_response)
Module routes.middleware:131 in __call__          view
>>  response = self.app(environ, start_response)
Module pylons.wsgiapp:107 in __call__          view
>>  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:312 in dispatch          view
>>  return controller(environ, start_response)
Module helloworld.lib.base:15 in __call__          view
>>  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:211 in __call__          view
>>  response = self._dispatch_call()
Module pylons.controllers.core:168 in _dispatch_call          view
>>  action)
NotImplementedError: Action u'test' is not implemented

person Blankman    schedule 12.09.2010    source источник
comment
да, плюс я загружаю сервер с помощью --reload   -  person Blankman    schedule 13.09.2010


Ответы (1)


Дважды проверьте свой отступ. Если def test (self) находится на том же уровне отступа, что и класс, вы не получите ошибку отступа.

Это вызывает ошибку отступа:

class HelloController(BaseController):
    def index(self):
        return "hello from index()"

  def test(self):
        return "blah"

Это не так:

class HelloController(BaseController):
    def index(self):
        return "hello from index()"

def test(self):
    return "blah"
person cmoylan    schedule 13.09.2010
comment
интересно, но почему работает def index (..)? его в другом отступе ?? - person Blankman; 13.09.2010
comment
обе мои линии def, индекс работает, а другой нет. - person Blankman; 13.09.2010
comment
Вы могли смешивать пробелы и табуляции. Если вы создали свой контроллер с помощью контроллера пастера, привет, метод индекса будет автоматически создан с использованием 4 пробелов для отступа. Ваш редактор может быть настроен на вставку символа табуляции шириной 4 пробела. Таким образом, даже если все выровнено, один метод имеет отступ с пробелами, а другой - с табуляцией. - person cmoylan; 13.09.2010