Google App Engine の webapp および Django テンプレートで WTForms を使用する
-
25-09-2019 - |
質問
WebアプリでWTFormsを使用しようとしていますが、うまくいきません。
使えるようになりたいのですが、 form_field
ドキュメントに示されているように、templatetag:
{% form_field form.username class="big_text" onclick="do_something()" %}
WTForms はアプリケーションに正常にインストールされていますが、その Django テンプレート タグが機能しません。これをインストールする方法についての説明がある人はいますか?
これでうまくいかない場合は、おそらく諦めて Jinja2 テンプレートに切り替えると思います。これまで Django を使い続けてきた理由は、依存関係の数をできる限り制限するためです。
これまでに試したことは次のとおりです。
Django 1.1 をローカルにインストールして有効にしました ドキュメントによると.
追加してみました INSTALLED_APPS = ['wtforms.ext.django']
わたしの settings.py
- 無効。
wtforms templatetag を手動で登録してみました。
register = webapp.template.create_template_register()
from wtforms.ext.django.templatetags import wtforms
register.tag('form_field', wtforms.do_form_field)
これによりエラーが発生しました: InvalidTemplateLibrary: Could not load template library from template_helpers, No module named django.templatetags
そこで、テンプレートタグをコピーして自分のコードに貼り付けようとしましたが、エラーが発生しました TemplateSyntaxError: Could not parse the remainder: ' form.foobar' from 'form_field form.foobar
.
ただし、そのコードがなくてもエラーは同じだったので、テンプレートタグの登録は機能しなかったと思います。
アップデート: いつかインターネット上の誰かが答えてくれるかもしれないので、この質問はそのままにしておきますが、Jinja2 に切り替えたところ、すべてが完璧に動作するようになりました。Django テンプレートを使用した Webapp は私にとって死んだものです。;-)
解決
私は、Djangoの上でJinja2のテンプレートをお勧めします: http://jinja.pocoo.org/ のそれは、Djangoのテンプレートに基づいていますが、より強力ですそして使いやすいです。私はそれがDjangoのスタックなしでDjangoのテンプレートを使用するのは良いアイデアだとは思いません。あなたはより多くの構造化フレームワークをしたい場合にも、非常に素晴らしいミニマルなフレームワークは、フラスコです: http://www.pocoo.org /プロジェクト/フラスコ/#フラスコに。私は十分にそれらの2つのライブラリを賞賛することはできません。私は、Djangoの中で長い時間を働いていたし、このコンボは非常にスッキリと簡潔であることがわかっています。
P.S。これは、ポート経由に非常に単純なプロセスである必要があります。私はちょうどフラスコを知ったときには、Webアプリケーションのサイト上でポートに私に10分かかっています。