2013-09-03 1 views
0

에 나가서 설명하자면 NameError가 발생합니다,하지만 실제로 편집기로 로그인 할 때 나는가 발생 다음 얻을 : 나는 logged_in에 대한 메커니즘을 볼 코드를 검사피라미드 튜토리얼 "위키"매우 밀접 피라미드 위키 튜토리얼에 따라 로그인

NameError: logged_in 

- Expression: "logged_in" 
- Filename: /Users/erik/pyramid/tutorial/tutorial/templates/edit.pt 
- Location: (line 25: col 23) 
- Source:  <span tal:condition="logged_in"> 
            ^^^^^^^^^ 

요청에 첨부되어 있어야합니다.

URI에서 /edit_page을 제거하면 viewing 템플릿에 로그 아웃 링크가 올바르게 표시됩니다. 밴쿠버에서 당황한 ...

답변

3

logged_in은 요청의 일부가 아니며 편집보기에서 템플릿으로 전달한 데이터입니다. 튜토리얼의 view.py의 라인 72-84에서보세요 :

@view_config(name='edit_page', context='.models.Page', 
      renderer='templates/edit.pt', 
      permission='edit') 
def edit_page(context, request): 
    if 'form.submitted' in request.params: 
     context.data = request.params['body'] 
     return HTTPFound(location = request.resource_url(context)) 

    logged_in = authenticated_userid(request) 

    return dict(page = context, 
       save_url = request.resource_url(context, 'edit_page'), 
       logged_in = logged_in) 

가 여기 logged_inauthenticated_userid 호출을 통해 설정 한 다음 반환에 사전의 일환으로 템플릿에 전달되는 볼 수 있습니다.

edit_page보기가 view_config에 올바르게 연결되어 있고 logged_in을 올바른 이름으로 반환했는지 확인하십시오.

+0

감사합니다. Matthew. 이전 버전의 튜토리얼을 가리키고 있지만 결과적으로 오류가 발생했습니다. 나는 p을 떨어 뜨렸다. 나는 돌아왔다 : return dict (page = context, save_url = request.resource_url (컨텍스트, 'edit_page', logged_in = logged_in)) – RSAdmin

+0

다음과 같은 질문을 할 수있다. 자습서를 참조하십시오, 잘못된 실수에 대해 이야기하는 실수를 피하기 위해. –