問題タブ [field-names]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django でのモデル フィールド名のグループ化
多くのさまざまなデータが動的にレンダリングされる複雑な詳細ビューがあります。私のモデルには何百ものフィールドがあり、その多くは互いに関連しています。クエリを実行するために、これらのフィールドの数をグループ化できるようにしたいと考えています。これを行う方法はありますか?
特定のフィールドを厳選してグループ化するために、私の現在のアプローチは、各グループに共通のフィールド名に単語拡張子を使用することです。たとえば、次のようなフィールド名です。
なる:
次に、フィールド名リストを作成し、部分文字列検索を使用して特定のフィールド グループにアクセスします。どうすればいいですか?以下は、これまでの私の試みと問題の要約です。
_meta の使用
_meta を使用して生のモデル フィールド名情報にアクセスできます。
これにより、次のようなリストが得られます。
しかし、これから必要な情報を抽出する方法を理解できませんでした。
_meta と field.get_attname_column()[0] の使用
フィールド名オブジェクトのリストを文字列として作成できます。
これにより、field_names の追加リストが得られます。
部分文字列検索を追加すると、必要なフィールド名のサブセットを取得できます。たとえば、検索文字列「antimic」を使用すると、次のようになります。
「グループ ワード拡張子」を含むフィールド名を正常に分離します。フィールド名の実際の値にアクセスできなくなったことを除けば、すべて問題ありません。フィールド名自体だけです。リストがテンプレートで繰り返されると、フィールド名のみが返されます。
タプルと辞書の使用
リストを tuplify して dictify し、結果の辞書を使用しようとすると:
値ではなく、結果として名前を取得します。
ハードコーディングされた辞書
これまでのところ、機能する唯一の方法は、詳細ビューでクエリごとに特定の辞書をハードコーディングすることです。
これは問題なく機能しますが、辞書が大きくなると複雑になり、キーと値のペアをハードコーディングするという考えは好きではありません。私は解決策に非常に近づいているように感じますが、コーディングの初心者であるため、明らかに何かが欠けています。誰か助けてくれませんか?乾杯。
シェルビントンのソリューション
Mr. Shelvington の提案に従って、コードを次のように変更しました。
2 つの変数 (部分文字列と「抗生物質」) しかないことに注意してください。このコードは、追加の部分文字列と辞書の作成に再利用できます。次に、テンプレートを次のように変更しました。
追加メモ: ビュー内の辞書を繰り返し処理して、繰り返しの値が見つからない場合に HTML テキスト タイトルが消えるようにしました。