2017-09-19 1 views
-2

のURLを構築することができませんでしたがここに私のコードです:なurl_for:BuildError - エンドポイント

<!DOCTYPE html> 
<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="static/test.css"> 
</head> 
<body> 
    {% for i in range(result['data']|length) %} 
     <div id="wrapper"> 
     {% for key, value in result['data'][i].iteritems() %} 
      <div id="first">{{ key }}</div> 
      <div id="second"><a href="{{ url_for('employees_name', employee_id=value)}}">{{ value }}</a></div> 
     {% endfor %} 
     </div> 
     &nbsp; 
    {% endfor %} 
</body> 
</html> 

私は "値" 変数は、私はエラーを取得する "EMPLOYEE_ID" に渡すとき:

BuildError: Could not build url for endpoint 'employees_name'. Did you forget to specify values ['employee_id']?

何変わったことに、 "key"変数を "employee_id"に渡すと、問題はありませんが、 "value"変数を渡す必要があります。何が問題を引き起こす可能性がありますか?ありがとう!

+0

そのエンドポイントの '@ app.route()'登録とは何ですか? –

+0

また、あなたはビルドエラーの原因となる** url_for() '呼び出し**を100%確信していますか?その通話を一時的に削除するとどうなりますか? –

+0

[編集]に[mcve]を含めるようにしてください。 – davidism

答えて

0

スクリプトを変更しましたが、これは次のようになりました。できます。

<!DOCTYPE html> 
    <html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="static/test.css"> 
    </head> 
    <body> 
     {% for i in range(result['data']|length) %} 
      <div id="wrapper"> 
      {% for key, value in result['data'][i].iteritems() %} 
       <div id="first">{{ key }}</div> 
       <div id="second">{{ value }}</div> 
      {% endfor %} 
      <div><a href="{{ url_for('employees_name', employee_id=result['data'][i]['EmployeeId'])}}">More</a></div> 
      </div> 
      &nbsp; 
     {% endfor %} 
    </body> 
    </html> 
1

employee_idの値をハードコードしてテストすることができますが、それが問題であるかどうかをテストすると、{{ value }}が空であると思われます。

我々はemployees_nameビューのコードを持っていないので、私はあなたがこのようにそれをデバッグ勧め:

  • あなたは{{value}}が何であるかを見ることができるように、href空とのリンクをチェックし、あるそれ何ビューに渡されるか

  • チェックはresult['data'][i]の上にループのリターン何であり、それはすべての

  • で任意の結果を持っている場合、私はかどうかを確認しますたいです

が、再びそもそも全く{% if result %}によってresult['data']があり、問題が{{value}}が存在するかそれが問題を引き起こしていることを他の何かされていないとあるかどうかを確認するためにhrefemployee_idの値をハードコーディング。

たとえば、value@app.routeの変数と同じ種類でない場合、このエラーが発生する可能性があります。

+0

'{{value}}'は空ではありません..その値はブラウザに表示され、url_for()ではエラーが発生しましたが、 'result ['data'] [i] ['EmployeeId'] 'とそれは動作します.. – pingwin850

関連する問題