[解決済み】Django: モデルフィールドのリストを取得しますか?
2022-04-02 18:30:38
質問
を定義しました。
User
を(最終的に)継承するクラスです。
models.Model
. このモデルに定義されているすべてのフィールドのリストを取得したいのです。例えば
phone_number = CharField(max_length=20)
. 基本的に、私は
Field
クラスがあります。
を活用することで、これらを取得することができるのではないかと考えました。
inspect.getmembers(model)
しかし、それが返すリストにはこれらのフィールドが含まれていません。Django は既にこのクラスを手に入れ、魔法の属性を全て追加し、実際に定義されているものを 取り除いたようです。では...どうしたらこれらのフィールドを取得できるのでしょうか?おそらく、内部目的のためにそれらを取得する関数があるのでは?
解決方法は?
ほとんどの回答が古くなっているので、以下について更新してみます。 Django 2.2 Here posts-あなたのアプリ(投稿、ブログ、ショップなど)。
1) モデルから のリンクをクリックします。 https://docs.djangoproject.com/en/stable/ref/models/meta/
from posts.model import BlogPost
all_fields = BlogPost._meta.fields
#or
all_fields = BlogPost._meta.get_fields()
注意してください。
all_fields=BlogPost._meta.get_fields()
また、いくつかのリレーションシップを取得しますが、これは例えば、ビューに表示することはできません。
私の場合のように。
Organisation._meta.fields
(<django.db.models.fields.AutoField: id>, <django.db.models.fields.DateField: created>...
そして
Organisation._meta.get_fields()
(<ManyToOneRel: crm.activity>, <django.db.models.fields.AutoField: id>, <django.db.models.fields.DateField: created>...
2) インスタンスから
from posts.model import BlogPost
bp = BlogPost()
all_fields = bp._meta.fields
3) 親モデルから
親モデルがPostで、すべてのフィールドをリストで表示し、編集モードでは親フィールドを読み取り専用にしたい場合を考えてみましょう。
from django.contrib import admin
from posts.model import BlogPost
@admin.register(BlogPost)
class BlogPost(admin.ModelAdmin):
all_fields = [f.name for f in Organisation._meta.fields]
parent_fields = BlogPost.get_deferred_fields(BlogPost)
list_display = all_fields
read_only = parent_fields
関連
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
[解決済み] Django の Model オブジェクトを、全てのフィールドをそのままに dict に変換します。
-
[解決済み] djangoでDISTINCT個々の列を選択しますか?
-
[解決済み] 2つのフィールド「unique」をカップルとして定義する方法
-
[解決済み] Djangoの "slug "とは何ですか?
-
[解決済み] Django のモデルで on_delete は何をするのですか?
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み】Django - クエリ結果を制限する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] NoReverseMatch at /
-
[解決済み] Django - 円形モデルのインポートの問題
-
[解決済み] Django における cleaned_data の用途は?
-
[解決済み] django 上書きフォームクリーンメソッド
-
Pythonが表示される。TypeError: 期待される文字列またはバッファ
-
Djangoにおけるrenderとrender_to_responseの違いについて
-
[解決済み】Django: モデルフィールドのリストを取得しますか?
-
[解決済み】reverse()とは何ですか?)
-
[解決済み】Django MEDIA_URL と MEDIA_ROOT
-
[解決済み] Django でモデルのフィールドを取得する