0
내 변수 messages_outbox
파이썬 : 지역 변수는 할당하기 전에 참조
@view_config(route_name="dashboard", request_method='GET')
def home(self, is_desktop=True):
callback = self.session["bounce"]
if callback is not None:
self.session["bounce"] = None
return self.redirect(callback)
mak = Dashboard.DesktopHomeMak
member = self.member
dict = {}
# self.cls.append_preview(member=member, dict=dict)
state = member.state
messages_outbox = self.ctx.messaging.outbox
messages_outbox = messages_outbox[:3] if len(messages_outbox) > 3 else messages_outbox
messages_outbox_total = len(messages_outbox)
messages_inbox = self.ctx.messaging.inbox
messages_inbox = messages_inbox[:3] if len(messages_inbox) > 3 else messages_inbox
messages_inbox_total = len([m for m in messages_inbox])
dict['messages_outbox'] = messages_outbox
dict['messages_outbox_total'] = messages_outbox_total
dict['messages_inbox'] = messages_inbox
dict['messages_inbox_total'] = messages_inbox_total
newbie = self.ctx.session.newbie
profile = self.member.profile
profile = profile.deflate()
profile["avatar"] = self.avatar_uri_large
dict['profile'] = profile
dict['newbie'] = newbie
dict['verified'] = None
dict['member'] = member
if newbie is True:
session = self.ctx.session
try:
state = session.state
state.pop("newbie")
except:
pass
try:
session.save_state()
except:
pass
## if the member has not verified their email address, let them know
if self.member.is_verified is False:
dict['verified'] = False
else:
dict['verified'] = True
print dict['messages_outbox']
print messages_outbox
return self.render(mak, value=dict, messages_outbox=messages_outbox, messages_inbox=messages_inbox)
MAK의 파일 (base.mak)을 정의하는 내 정의의 부분은 내가이 오류 여기
을 받고있는 이유 확실하지
%if messages_outbox:
% for messages_outbox in messages_outbox:
% if messages_outbox["type"] == "Introduction":
${makerow_outbox(messages_outbox)}
% endif
% endfor
<thead>
<tr>
<td colspan="6">
<p class="message">You don’t have any active requests. To make a request use the <a href="#" class="search-highlight">search field</a></p>
</td>
</tr>
</thead>
%endif
내가 underst하지 않습니다 무엇 : 그 아래의 코드는 (첫 번째 줄에) 오류를 던지고있다가 포함 된 다른 템플릿 파일 (home.mak)에 끌어 템플릿입니다 템플릿을 렌더링하기 전에 분명히 messages_outbox
이 정의되어 있습니다. 왜이 오류가 발생합니까?
전체 역 추적 : 당신이 messages_outbox 마스크하지 않도록
이Traceback (most recent call last):
File "/Applications/MAMP/htdocs/WhoAt/env/lib/python2.7/site-packages/pyramid-1.4.2-py2.7.egg/pyramid/mako_templating.py", line 232, in __call__
result = template.render_unicode(**system)
File "/Applications/MAMP/htdocs/WhoAt/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/template.py", line 452, in render_unicode
as_unicode=True)
File "/Applications/MAMP/htdocs/WhoAt/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 783, in _render
**_kwargs_for_callable(callable_, data))
File "/Applications/MAMP/htdocs/WhoAt/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 815, in _render_context
_exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File "/Applications/MAMP/htdocs/WhoAt/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 841, in _exec_template
callable_(context, *args, **kwargs)
File "/Applications/MAMP/htdocs/WhoAt/env/www/www/templates/index/desktop/base_dashboard.mak", line 647, in render_body
${next.body()}
File "/Applications/MAMP/htdocs/WhoAt/env/www/www/templates/index/desktop/home.mak", line 81, in render_body
%if messages_outbox:
UnboundLocalError: local variable 'messages_outbox' referenced before assignment
'dict'은 어디에 정의되어 있습니까? 그것이 식별자이기 때문에 그것을 식별자로 사용하는 것은 좋은 생각이 아닙니다. 또한 messages_outbox가 아직 정의되지 않았다는 불만을 표시하는 행은 무엇입니까? – munk
실제 추적 표시. – geoffspear
'messages_outbox의 messages_outbox '- 본질적으로 지역 변수를 재정의하고 있으므로 여기에 오류가있을 수 있습니다. 'messages_outbox에서 보낼 편지함'으로 변경하고 – J0HN