DjangoBrothersのチュートリアルで勉強しています。
今回はTemplate SyntaxErrorが発生したので内容をメモしておきます。
エラーの内容
Webでメモを管理するというチュートリアルがあります。
そこで一度作成したメモを後から編集する機能を追加しようとして、
このようなエラーが発生しました。
1 2 |
TemplateSyntaxError at /edit_memo/4 Could not parse the remainder: '% form.title %' from '% form.title %' |
こちらが誤ったコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<div> <a href="{% url 'app:detail' memo.id %}">戻る</a> </div> <form action="{% url 'app:edit_memo' memo.id %}" method="POST">{% csrf_token %} <table> <tr> <th>タイトル</th> <td>{{% form.title %}}</td> ここに%がある </tr> <tr> <th>テキスト</th> <td>{{% form.text %}}</td> ここに%がある </tr> </table> <button class="btn" type="submit">保存</button> </form> |
正しくはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<div> <a href="{% url 'app:detail' memo.id %}">戻る</a> </div> <form action="{% url 'app:edit_memo' memo.id %}" method="POST">{% csrf_token %} <table> <tr> <th>タイトル</th> <td>{{ form.title }}</td> </tr> <tr> <th>テキスト</th> <td>{{ form.text }}</td> </tr> </table> <button class="btn" type="submit">保存</button> </form> |
parseについて
エラーの内容には”Could not parse the remainder“とあったのですが、parse(パーサ)というものが何かわからなかったので少し調べてみました。
parseとは構文を意味するものです。
parser(パーサ)と呼ばれるものが構文を解析し、プログラムで扱うことができる構造に変換する機能をもつようです。
今回はブラウザがhtmlファイルを表示するためにhtmlのタグを解析しようとしていたところ、”%”が含まれていたために解析することができないというエラーだったようです。
{{}} これで囲まれているものは%で囲むものだと勘違いしていたのですが、
Djangoのドキュメントを見るに、変数は%で囲まずに記述し、テンプレート上で処理を制御するタグについては%で囲むのが正しいです。
参考サイト
プログラミングを学ぶなら無料相談を活用しよう
独学でプログラミングを学ぶのは簡単なことではありません。
闇雲に本を買ったり動画を見たりするのは人によっては非効率な方法になり得ます。
しかし、エンジニアとして働いていきたいという気持ちを捨てられないのであれば、人に聞いてしまうと解決までが早くなります。
とはいえ、自分にはそんなことを聞ける人が周りにいない・・・という方もいるかもしれません。
そんな時はプログラミングスクールに問い合わせてみましょう。
プログラミングスクールは受講するとなると比較的大きなお金が必要になるので、そう簡単には受講できません。
しかし、ひとまず登録した上での情報収拾や学習方法の相談にはぴったりです。
カウンセリングや学習の相談であれば無料で受け付けているスクールも多いです。
こちらのウェブカツというスクールは、まさに学習の相談だけでなく体験レッスンまで無料で受講できるサービスです。
迷うくらいなら一歩目を踏み出した方が良いです。独学でプログラミング を身につけることに限界を感じているようであれば、こういったサービスを慎重に利用しましょう。
サポートが手厚く、自分に合いそうだと感じたスクールがあればお金を払って学習する価値もあるでしょう。
まとめ
今回はDjangoでWebアプリケーション開発中のエラーについて書きました。
他にもPythonの記事を書いているので、ぜひご覧ください。
コメント