У меня есть серверный веб-код, подобный этому:
urls = (
'/home', 'homePage',
'/clients/(.*)', 'clientsPage',
)
# Class for common pages methods and parameters
class allpages(object): ....
def logout(self):
i=web.input().keys()[0]
if i=='logout': session.kill()
return
class homePage(allpages):
def GET (self):
self.loginCheck()
return self.showpage('home',self.userName())
def POST (self):
self.logout()
return
class clientsPage(allpages):
def GET (self, client):
self.loginCheck()
if client == '': clientID=renderInc.firmlist('clients')
elif client == 'new': clientID=renderInc.newfirm('clients')
else: clientID = 'There is no such client' #TODO: make a 404 page
return self.showpage('clients',clientID)
def POST (self):
self.logout()
return
в одном из моих HTML-шаблонов (нижний колонтитул) есть кнопка «Выйти», которая запускает скрипт по клику:
jQuery('#logout').click(function(){
jQuery.post(path,{'logout':''}, function(){location.reload();});
});
Все отлично работает в разделе / home, но когда я пытаюсь выйти из / clients / pages, возникает ошибка: TypeError: POST () принимает ровно 1 аргумент (2 дано).
Вопрос 1: Почему это происходит?
Вопрос 2: есть ли способ заставить какие-либо методы запускаться в POST на каждой странице по умолчанию (не копировать строку self.logout()
в каждом классе.