私は現在 web2py のユーザーですが、まだ時々 Django に戻ることがあります (最初に始めた場所)。具体的には、web2py にまだ存在しない特定の django アプリ/プラグイン/拡張機能を利用したいプロジェクトに取り組んでいるときです。
私が Django で解決策を探している web2py なしでは生きていけないことの 1 つは、db テーブルから html フォームを作成し、ビューでそれらの外観とレイアウトを javascript なしでカスタマイズできる方法です。 .
私が探している主なもの:
- db テーブルから html フォームを生成する
- 生成された html フォームの各フィールドにカスタム css クラス/id を割り当てます (js は無効)
- ビューのメソッド呼び出しを介して、事前に作成された html ビューに各フォーム フィールド/要素を配置します。
すなわち
私はテーブルAを持っています.web2pyでは(コントローラーで)できます:
def display_form():
form = SQLFORM(db.table_A)
#Can I do the following in Django? Assign custom CSS to each form field?
form.element(_name='email')['_class'] = = "custom_css_classes, list"
if form.accepts(request.vars, session):
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill out the form'
return dict(form=form)
次に、ビューで次のことができます。
form.custom.start
form.custom.widget.name
form.custom.widget.email
form.custom.widget.form_field_name
...
<div class="span-5 last"><input type="submit" class="register_btn" value="Sign Up"></input></div>
form.custom.end
上記は DB テーブルを取得し、HTML フォームを作成し、事前に作成された HTML の任意の場所に個別のフォーム フィールドを貼り付けます (渡された「フォーム」オブジェクトでこれらの「カスタム」メソッド呼び出しを使用します。生成された HTML フォームの各フィールドに割り当てたカスタム CSS クラス。
上記のコードの詳細については、ドキュメントを参照してください。
http://web2py.com/book/default/chapter/06?search=define_table
http://web2py.com/book/default/chapter/07?search=sqlform#SQLFORM
http://web2py.com/book/default/chapter/05?search=#サーバー側のDOMと解析
http://web2py.com/book/default/chapter/07?search=form.custom
JavaScriptをレイアウトハックで汚さずに、Djangoで上記を行うにはどうすればよいですか。アプリを実行する必要があるブラウザーで JavaScript が無効になっていると仮定します。さらに、Django admin を活用したいと考えています。Pylons ソリューションも歓迎します!
このための記事/チュートリアル/ハウツーへのリンクをいただければ幸いです。また、応答で言及した方法を使用して、上記のコードと同等の結果を作成してください...