Template SyntaxError ~Could not parse the remainder:~が出たときの対処[Python/Django]

この記事は約2分で読めます。

DjangoBrothersのチュートリアルで勉強しています。

今回はTemplate SyntaxErrorが発生したので内容をメモしておきます。

エラーの内容

Webでメモを管理するというチュートリアルがあります。

そこで一度作成したメモを後から編集する機能を追加しようとして、

このようなエラーが発生しました。

こちらが誤ったコード

正しくはこちら

parseについて

エラーの内容には”Could not parse the remainder“とあったのですが、parse(パーサ)というものが何かわからなかったので少し調べてみました。

parseとは構文を意味するものです。

parser(パーサ)と呼ばれるものが構文を解析し、プログラムで扱うことができる構造に変換する機能をもつようです。

今回はブラウザがhtmlファイルを表示するためにhtmlのタグを解析しようとしていたところ、”%”が含まれていたために解析することができないというエラーだったようです。

{{}} これで囲まれているものは%で囲むものだと勘違いしていたのですが、

Djangoのドキュメントを見るに、変数は%で囲まずに記述し、テンプレート上で処理を制御するタグについては%で囲むのが正しい様子。

参考

Django テンプレート言語

Django:組み込みタグとフィルタの一覧

コメント