2012-01-08 8 views
2

djangoのテンプレートエンジンで使用されているすべての予約済みキーワードのリストが必要です。これらのキーワードのほとんどは、ここで見つけることができます:djangoテンプレートのすべての予約キーワードのリスト?

https://docs.djangoproject.com/en/dev/ref/templates/builtins/

は、キーワードのリストだけを取得するプログラムによる方法はありますか?または、すべてをリスト形式で含む文書ですか?

+2

者からこれを実行する必要が

from django.contrib.admindocs.views import load_all_installed_template_libraries from django import template app_libs = template.libraries.items() builtin_libs = [(None, lib) for lib in template.builtins] for module_name, library in builtin_libs + app_libs: for tag_name, tag_func in library.tags.items(): print 'Tag: ', tag_name for filter_name, filter_func in library.filters.items(): print 'Filter: ', filter_name 

は、彼らがジャンゴ自身が提供するだけでタグやフィルタだ、「予約キーワード」ではありません。 –

+2

私はdandonovanの(少し修正された)プログラムの出力のペーストビンを作成しました:http://pastebin.com/82CyecW2 – zzz

答えて

2

djangoのフィルタとタグは、あなたが提供するリンクのドキュメンテーションで定義されています。ステファノが示唆するコードdefaultfilters.pyのコードから自動的に作成されています。

admindocsadmindocs)アプリを見ると、定義したカスタムタグやフィルタも含まれるため、さらに正確な説明が得られます。あなたがdjango-admin.py shellまたはpython manage.py shell

2

"リスト"とは具体的にはどういう意味ですか?

  1. リンクするドキュメントページからコピー貼り付けで抽出できます。

  2. あなたは例えば、同じページからJSでそれを抽出することができます。

    document.querySelectorAll('a[href="#built-in-tag-reference"] ~ ul > li > a')

    はあなたにすべてのタグ要素を取得します。あなたはそこからそれを選ぶことができます。

  3. また、djangoのpythonコードを使用することもできます。

&フィルタが下にある

デフォルトのテンプレートタグ:あなたはより良いあなたが目的である、あなたは、より関連性の答えを得るかもしれないかを説明することができれば

/django/templates/defaultfilters.py 
/django/templates/defaulttags.py 

。いずれにしても、私はdjangoのPythonコードから始めると、あなたが望む結果に近づけるはずです。

追加のフィルタとタグに{%load TAG%}タグが追加されています。あなたが本当に簡単にそれをハックし、あなたが本当に望むならば、あなた自身のものでデフォルトのフィルター/タグを置き換えることができるので、読み込みがどのように働くかは面白いです。

+0

私の目的は、[SHPAML]の構文colorer/highlighterを書いているのでキーワードを取得することです(http: //shpaml.webfactional.com/)と[colorer](http://colorer.sourceforge.net/)のeclipseプラグインのdjangoです。私はdjangoテンプレートタグ{%%}内のそれらの予約語を強調表示できるように、djangoの予約キーワードのリストが必要です。 – zzz

+0

@EricGustavsonこの場合、これらのメソッドはどちらも動作し、同様に高速でなければなりません。フィルタとタグの静的リストのみが必要です。または、基本的に私の提案#3から始まるdanodonovanコードを使用してください。 – Stefano

関連する問題