状況
Django テンプレートをチェックするチェッカー プログラムを作成しています。たとえば、url
テンプレート タグを使用するすべての Django テンプレートが最初のパラメーターに引用符を付けて使用するかどうかを確認して、Django 1.5 と互換性があるようにします。{% load url from future %}
また、テンプレートに含まれていることを確認したいと思います。
たとえば、私のプログラムが次の Django テンプレートを解析する場合、例外を発生させたいと考えています。
{% extends 'base.html' %}
<td>
<a href="{% url first second %}">
</a>
</td>
ただし、このテンプレートは例外なく解析されるはずです。
{% extends 'base.html' %}
{% load url from future %}
<td>
<a href="{% url 'first' second %}">
</a>
</td>
私はこの単純な例に限定されません。他に解析する必要があります。たとえば、テンプレートにいくつのload
テンプレート タグが存在するかを確認したいとします。
質問
この解析問題をエレガントに解決するにはどうすればよいですか?
- 正規表現は使いたくありません。
- この Django には、この点に関していくつかのユーティリティがあります。それらを使用するのは良い考えだと思いますが、方法がわかりません。
- プログラムを Django とは別に実行したい。だから私はDjangoにプログラム自体を実行させたくありません(で
render_to_response
)。(これは重要です)
コード
私が言及した例を解決できるコードをいくつか示してください。{% load url from future %}
コード内にあるかどうかを検出したい。また、すべてのurl
テンプレート タグをチェックし、最初の引数が引用符で囲まれているかどうかをチェックしたいと考えています。
ボーナス:
- Django がこのテンプレートから生成するレンダリングされた HTML を表示し、それに対して HTML 解析を実行できるようにしたいと考えています。(たとえば、PyQuery を使用)