2016-10-10 1 views
0

의 Django에서 단 하나의 인수 (주어진 3 개)를 취합니다. 장고 앱을 관리 할 때 한 가지 문제를 해결하려고합니다.ERROR __init __()은 GAE

admin_main.py :

application = webapp.WSGIApplication([ 
# Admin pages 
(r'^(/admin/add_img)', admin.views.AddImage), 
(r'^(/admin)(.*)$', admin.Admin),]) 

관리자/views.py : 나는 페이지 http://localhost:8080/admin을 얻을 때

class BaseRequestHandler(webapp.RequestHandler): 
def handle_exception(self, exception, debug_mode): 
    logging.warning("Exception catched: %r" % exception) 
    if isinstance(exception, Http404) or isinstance(exception, Http500): 
     self.error(exception.code) 
     path = os.path.join(ADMIN_TEMPLATE_DIR, str(exception.code) + ".html") 
     self.response.out.write(template.render(path, {'errorpage': True})) 
    else: 
     super(BaseRequestHandler, self).handle_exception(exception, debug_mode) 

class Admin(BaseRequestHandler): 

def __init__(self, request,response): 
    logging.info("NEW Admin object created") 
    super(Admin, request, response).__init__() 
    # Define and compile regexps for Admin site URL scheme. 
    # Every URL will be mapped to appropriate method of this 
    # class that handles all requests of particular HTTP message 
    # type (GET or POST). 
    self.getRegexps = [ 
     [r'^/?$', self.index_get], 
     [r'^/([^/]+)/list/$', self.list_get], 
     [r'^/([^/]+)/new/$', self.new_get], 
     [r'^/([^/]+)/edit/([^/]+)/$', self.edit_get], 
     [r'^/([^/]+)/delete/([^/]+)/$', self.delete_get], 
     [r'^/([^/]+)/get_blob_contents/([^/]+)/([^/]+)/$', self.get_blob_contents], 
    ] 
    self.postRegexps = [ 
     [r'^/([^/]+)/new/$', self.new_post], 
     [r'^/([^/]+)/edit/([^/]+)/$', self.edit_post], 
    ] 
    self._compileRegexps(self.getRegexps) 
    self._compileRegexps(self.postRegexps) 
    # Store ordered list of registered data models. 
    self.models = model_register._modelRegister.keys() 
    self.models.sort() 
    # This variable is set by get and port methods and used later 
    # for constructing new admin urls. 
    self.urlPrefix = '' 

def index_get(self): 
    """Show admin start page 
    """ 
    path = os.path.join(ADMIN_TEMPLATE_DIR, 'index.html') 
    self.response.out.write(template.render(path, { 
     'models': self.models, 
     'urlPrefix': self.urlPrefix, 
    })) 

그리고, 내가 얻을

이 코드를 다음 오류 :

ERROR 2016-10-10 14:37:25,484 webapp2.py:1528] __init__() takes exactly 1 argument (3 given) 
Traceback (most recent call last): 
    File "C:\Users\Yisus-MSI\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\lib\webapp2-2.3\webapp2.py", line 1511, in __call__ 
    rv = self.handle_exception(request, response, e) 
    File "C:\Users\Yisus-MSI\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\lib\webapp2-2.3\webapp2.py", line 1505, in __call__ 
    rv = self.router.dispatch(request, response) 
    File "C:\Users\Yisus-MSI\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\lib\webapp2-2.3\webapp2.py", line 1253, in default_dispatcher 
    return route.handler_adapter(request, response) 
    File "C:\Users\Yisus-MSI\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\lib\webapp2-2.3\webapp2.py", line 1076, in __call__ 
    handler = self.handler(request, response) 
TypeError: __init__() takes exactly 1 argument (3 given) 

나는 포럼의 많은 솔루션을 시도하지만 아무도 작동하지 않습니다.

도움 주셔서 감사합니다. 난 당신이 super()을 사용하여 실수를 생각

+0

이 전혀 장고를 사용하는 것으로 나타나지 않습니다. –

+0

어쩌면 장고의 문제는 아니지만 문제는 무엇인지 모르겠다 @DanielRoseman – Yisus

답변

0

, 당신은 당신의 Admin.__init__() 방식으로 변경해야

super(Admin, request, response).__init__() 

에 :

super(Admin, self).__init__(request=request, response=response)