0

jsdataを定義する私のホームページで呼び出し可能なビューは次のとおりです。

@view_config(route_name='home_page', renderer='templates/edit.pt')
def home_page(request):
    if 'form.submitted' in request.params:
        name= request.params['name']
        input_file=request.POST['stl'].filename
        vertices, normals = [],[]
        for line in input_file:
            ....

        ordering=[]

        ...parsing data...

        data=[vertices,ordering]
        jsdata=json.dumps(data)
        renderer_dict = dict(name=name,data=jsdata)
        ...
        html_string = render('tutorial:templates/view.pt', renderer_dict, request=request)
        with open(filename,'w') as file:
                file.write(html_string)
        return HTTPFound(location=request.static_url('tutorial:pages/%(pagename)s.html')% {'pagename':name}) 

    return {}    

そのファイル(views.py)にもjsonをインポートしました。ここでは、view.ptテンプレートにレンダリングされています。

<script>
var data = ${structure:jsdata};
</script>

NameErrorは、その2行目のjsdata部分を指します。なぜこうなった?名前エラーはそれが未定義であることを意味しませんか?jsdataが未定義だと言っているのはなぜですか?キーワードとしてレンダリング関数に渡す必要がありますか?

また、そのjsdata定義の下にエラーがある可能性があることを認識しています。jsdataで何をしたいのかがわかるように、その部分を含めました。

4

1 に答える 1

2
renderer_dict = dict(name=name,data=jsdata)

あなたはそれをではdataなくとして入れていますjsdata。したがって、または割り当て${structure:data}を変更する必要があります。renderer_dict

于 2013-02-12T17:33:27.223 に答える