내가 렌더링 페이지에 대한 방법을 정의 없습니다 :AttributeError가 '<Class name>'개체가 어떤 속성 '요청'
GruposHandler
class GruposHandler(webapp.RequestHandler):
def get(self):
self.obtenerPagina()
def obtenerPagina(self, pOpcion = None, pMensajeInformacion = None):
opcion = pOpcion if pOpcion is not None else self.request.get('opcion')
usuario = obtenerUsuario()
rsGrupos = obtenerGruposAll()
listaGruposCreadosPorUsuario = []
#
#
for grupo in rsGrupos:
if grupo.creadoPorUsuario == usuario:
listaGruposCreadosPorUsuario.append(grupo)
blahh...
if opcion == 'gruposMios':
doRender(self, 'grupos_mios.html', {'listaGruposCreadosPorUsuario':listaGruposCreadosPorUsuario,
'informacion':pMensajeInformacion})
: 또한
def doRender(handler, tname='index.html',values = {}):
temp = os.path.join(os.path.dirname(__file__),
'templates/'+tname)
if not os.path.isfile(temp):
return False
newval = dict(values)
newval['path'] = handler.request.path
user = users.get_current_user()
url = users.create_login_url(handler.request.uri)
url_linktext = 'Login'
if user:
url = users.create_logout_url(handler.request.uri)
url_linktext = 'Logout'
newval['user'] = user
newval['url'] = url
newval['url_linktext'] = url_linktext
outstr = template.render(temp, newval)
handler.response.out.write(outstr)
return True
을, 나는이 수업을
누에 보 그루도 핸들러
class NuevoGrupoHandler(webapp.RequestHandler):
def post(self):
nombre = self.request.get('nombre')
descripcion = self.request.get('descripcion')
#comprobar que no exista un grupo con el mismo nombre
obj = Grupo.get_by_key_name(nombre)
if obj:
doRender(self, 'nuevo_grupo.html', {'mensaje_descripcion':'Ya existe un grupo con ese nombre.'})
else:
grupo = model.Grupo(key_name = nombre, nombre=nombre, descripcion = descripcion);
grupo.put()
grupoHandler = GruposHandler()
grupoHandler.obtenerPagina("gruposMios", 'Informacion: un nuevo grupo fue agregado.')
webapp가 URL/nuevogrupo에 HTTP GET 요청을 수신하면 NuevoGrupoHandler 클래스를 인스턴스화하고 인스턴스의 get 메소드를 호출합니다. 그래서이 시점에서, 모든
def main():
application = webapp.WSGIApplication([
('/nuevogrupo', NuevoGrupoHandler),
etc...
을 예상대로 작동하지만 obtenerPagina() 내부의 방법 doRender은()에 도달 NuevoGrupoHandler.post()에서 방법 GruposHandler.obtenerPagina() 예외를 호출 할 때 이것은 내가 갖는 스택 트레이스가
newval['path'] = handler.request.path
:이 줄을 던져
AttributeError: 'GruposHandler' object has no attribute 'request'
는 그래서 뭔가를 보인다 webapp.WSGIApplication 인스턴스에서 호출되지 않으면 올바르게 설정되지 않습니다. 난 그렇게까지 확신은 못해.
죄송합니다. 문제를 더 잘 설명하지 못했습니다.
예외를 피하기 위해 어떻게해야합니까?
미리 감사드립니다.
doRender()는 GruposHandler의 인스턴스 메소드입니까? – alex
안녕하세요.doRender()는 어떤 클래스에도 속하지 않습니다. 다른 클래스가 들어있는 파일 안에 있습니다. – Lucas