[解決済み】テンプレートでモデルインスタンスのフィールド名と値を反復処理する
2022-04-13 19:42:15
質問
選択されたインスタンスのフィールド値を、その名前とともに表示する基本的なテンプレートを作ろうとしています。 最初の列にフィールド名(フィールドに指定されている場合は特にverbose_name)、2番目の列にそのフィールドの値を含む、表形式のそのインスタンスの値の単なる標準出力とお考えください。
例えば、以下のようなモデル定義があるとする。
class Client(Model):
name = CharField(max_length=150)
email = EmailField(max_length=100, verbose_name="E-mail")
このようにテンプレートに出力してほしい(与えられた値を持つインスタンスを想定)。
Field Name Field Value
---------- -----------
Name Wayne Koorts
E-mail [email protected]
私が実現したいのは、モデルのインスタンスをテンプレートに渡して、テンプレート内で動的に反復処理できるようにすることで、次のようなものです。
<table>
{% for field in fields %}
<tr>
<td>{{ field.name }}</td>
<td>{{ field.value }}</td>
</tr>
{% endfor %}
</table>
これを行うためのきちんとした、"Django-approved"な方法はありますか? これは非常に一般的なタスクのようで、この特定のプロジェクトで頻繁に行う必要があります。
どのように解決するのですか?
model._meta.get_all_field_names()
を使えば、モデルのすべてのフィールド名を得ることができます。
model._meta.get_field()
で冗長な名前に辿り着き、さらに
getattr(model_instance, 'field_name')
を使ってモデルから値を取得します。
注意
model._meta.get_all_field_names()
は django 1.9 で非推奨となりました。代わりに
model._meta.get_fields()
でモデルのフィールドを取得し
field.name
を使用して各フィールド名を取得します。
関連
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] オブジェクトの現在のプロパティと値をすべて表示する組み込み関数はありますか?
-
[解決済み] intの最大値、最小値
-
[解決済み] Pythonの変数名や関数名の命名規則について教えてください。
-
[解決済み] 指定されたディレクトリ内のファイルを反復処理するにはどうすればよいですか?
-
[解決済み] リストをチャンクで反復処理する最も "pythonic "な方法は何ですか?
-
[解決済み] Django - テンプレートのforループで番号を反復する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python カメの描画コマンドとその例
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Python Pillow Image.save jpg画像圧縮問題
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み】Flaskのテンプレートが見つからない【重複あり