0

TabularInline 管理フォームのフィールドの html 命名をオーバーライドして、ダッシュが含まれないようにすることは可能ですか?

ここで得た知識を応用して、オートコンプリート機能を持つ TabularInline 管理フォームを作成しようとしています。

Django が tabularinline クエリセットのフィールドに次の行のような名前を付けることを主張することを除いて、すべて機能します。

[model]_set-[index]-[field]

したがって、モデルが TravelLogClient で、外部キー フィールドが会社の場合、tabularinline クエリセットの 3 つのエントリの HTML フォームのフィールドは次のようになります。

travellogclient_set-0-company
travellogclient_set-1-company
travellogclient_set-2-company

問題は、javascript がダッシュを含む識別子を嫌うことです。そのため、JavaScript が失敗し、オートコンプリートが機能しません。

これは、TABULAR インライン フォームだけの問題です。表形式ではない管理フォーム フィールドでJannis のオートコンプリートの例を使用すると、フィールド名..._set-[index]-...に HTML と JavaScriptの " " 部分がないため、問題なく動作します。

contrib.forms.forms.pyとのアンダースコアのダッシュを変更するパッチを django のソース コードに送信するのではなく、contrib.forms.formsets.py何らかの方法で動作をオーバーライドできる可能性があることに気付きました。

それに失敗した場合、代わりに html_name のダッシュをアンダースコアにする最も簡単な方法は何ですか?

前もって感謝します!

4

1 に答える 1