1
下面是我創建TypeError:'未定義'對象不可迭代?
<%inherit file="/openerp/controllers/templates/base_dispatch.mako"/>
<%def name="header()">
<title>${_("Otp")}</title>
<script type="text/javascript">alert("OTP PAGE");</script>
</%def>
<%def name="content()">
<table width="100%">
<tr><%include file="header.mako"/></tr>
</table>
</br>
<table class="view" cellpadding="0" cellspacing="0" style="padding-top: 10px; border:none;" align="center">
<tr>
<td style="padding:35px 10px 5px 35px; width="450" align="center">
<form action="${py.url(target)}" method="post" name="otpform" id="otpform" style="padding-bottom: 5px; min-width: 100px;">
% for key, value in origArgs.items():
<input type="hidden" name="${key}" value="${value}"/>
% endfor
<input name="otp_action" value="otp" type="hidden"/>
<fieldset class="box" style="width:300px">
<legend style="padding: 4px;">
<img src="/openerp/static/images/stock/stock_person.png" alt=""/>
</legend>
<div class="box2" style="padding: 5px 5px 20px 5px">
<b>Please enter SMS code</b>
<table width="" cellspacing="2px" cellpadding="0" style="border:none;">
<tr>
<td class="label"><label for="otp">${_("Otp:")}</label></td>
<td style="padding: 3px;"><input type="text" id="otp" name="otp" class="db_user_pass" value="${otp}" autofocus="true"/></td>
</tr>
<tr>
<td></td>
<td class="db_login_buttons">
<button type="submit" class="static_boxes">${_("Otp")}</button>
</td>
</tr>
</table>
</div>
</fieldset>
</form>
</td>
</tr>
</table>
<%include file="footer.mako"/>
</%def>
灰鯖模板,該模板的Python文件是
import re
from openobject.controllers import BaseController
import cherrypy
from openerp.utils import rpc
from mako.lookup import TemplateLookup
from mako.template import Template
from openobject import tools
import openobject
from openobject.tools import expose, url, redirect, validate, error_handler
import formencode
import base64
import time
class OTP(BaseController):
_cp_path = "/openerp/otp"
msg = {
}
def __init__(self, *args, **kwargs):
super(OTP, self).__init__(*args, **kwargs)
self._msg = {}
@expose()
def index(self, *args, **kw):
print '>>>>>>>>>>>>>>>>>>>>>>>INDEX<<<<<<<<<<<<<<<<<<<<<<<<<<'
self.msg = {}
target='/'
url='socket://localhost:8070'
action='otp'
info=''
info = None
message=''
origArgs=self.get_orig_args(kw)
self.otp_check(target, action, message, origArgs)
@expose(template="/openerp/controllers/templates/otp.mako")
def otp_check(self, target, action=None, message=None, origArgs={}):
print '>>>>>>>>>>>>>>>>>>>>>>>otp_check<<<<<<<<<<<<<<<<<<<<<<<<<<'
target='/'
url='socket://localhost:8070'
action='otp'
info=''
info = None
return dict(target=target, url=url, action=action, message=message, origArgs=origArgs, info=info)
def get_orig_args(self,kw):
if not kw.get('otp_action'):
return kw
new_kw = kw.copy()
clear_login_fields(new_kw)
return new_kw
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
但在運行它,我得到的瀏覽器下面的錯誤。
500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/cherrypy/_cprequest.py", line 606, in respond
cherrypy.response.body = self.handler()
File "/usr/lib/pymodules/python2.6/cherrypy/_cpdispatch.py", line 25, in __call__
return self.callable(*self.args, **self.kwargs)
File "/home/zbeanz/workspace/Sms_authentication/openerp-web-6.0.4/openobject/tools/_expose.py", line 182, in func_wrapper
res = func(*args, **kw)
File "/home/zbeanz/workspace/Sms_authentication/openerp-web-6.0.4/openobject/controllers/_root.py", line 90, in default
return request.handler()
File "/usr/lib/pymodules/python2.6/cherrypy/_cpdispatch.py", line 25, in __call__
return self.callable(*self.args, **self.kwargs)
File "/home/zbeanz/workspace/Sms_authentication/openerp-web-6.0.4/openobject/tools/_expose.py", line 182, in func_wrapper
res = func(*args, **kw)
File "/home/zbeanz/workspace/Sms_authentication/openerp-web-6.0.4/addons/openerp/controllers/otp.py", line 83, in index
self.otp_check(target, action, message, origArgs)
File "/home/zbeanz/workspace/Sms_authentication/openerp-web-6.0.4/openobject/tools/_expose.py", line 222, in func_wrapper
return render_template(_template, res).encode("utf-8")
File "/home/zbeanz/workspace/Sms_authentication/openerp-web-6.0.4/openobject/tools/_expose.py", line 141, in render_template
return utils.NoEscape(template.render_unicode(**kw))
File "/usr/lib/pymodules/python2.6/mako/template.py", line 138, in render_unicode
return runtime._render(self, self.callable_, args, data, as_unicode=True)
File "/usr/lib/pymodules/python2.6/mako/runtime.py", line 364, in _render
_render_context(template, callable_, context, *args, **_kwargs_for_callable(callable_, data))
File "/usr/lib/pymodules/python2.6/mako/runtime.py", line 381, in _render_context
_exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File "/usr/lib/pymodules/python2.6/mako/runtime.py", line 414, in _exec_template
callable_(context, *args, **kwargs)
File "_openobject_controllers_templates_base_mako", line 61, in render_body
File "/usr/lib/pymodules/python2.6/mako/runtime.py", line 255, in <lambda>
return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
File "_openerp_controllers_templates_otp_mako", line 89, in render_content
TypeError: 'Undefined' object is not iterable
什麼是造成此錯誤的原因?
你能否提供你正在使用以達到指數的網址是什麼? –