簡體   English   中英

Django 如何從給定的 sql 表 (model.py) 中獲取所有列名

[英]Django how to get all the column names from the given sql table (model.py)

我正在嘗試從 Django (model.py) 中的給定 SQL 表中獲取所有列。 我發現大多數教程都在討論使用列名獲取特定列。 就我而言,我可以期待將來出現未知的列,我希望在 Django 儀表板中看到它們。 有沒有辦法從給定表中獲取所有列名,而無需在 model.py (Django) 中提供任何列名?

你可以試試下面

from .model import MyModel

all_fields = MyModel._meta.fields
#or
all_fields = MyModel._meta.get_fields

文檔: https : //docs.djangoproject.com/en/3.2/ref/models/meta/

檢索模型的所有字段實例

MyModel.get_fields(include_parents=True, include_hidden=False)

返回與模型關聯的字段元組。 get_fields() 接受兩個參數,可用於控制返回哪些字段:

包括父母

  • 默認為真。
  • 遞歸地包括在父類上定義的字段。
  • 如果設置為 False,get_fields() 將只搜索直接在當前模型上聲明的字段。
  • 直接從抽象模型或代理類繼承的模型中的字段被認為是本地的,而不是父級的。

包含_隱藏

  • 默認為假。
  • 如果設置為 True,get_fields() 將包含用於支持其他字段功能的字段。
  • 這還將包括具有以“+”開頭的 related_name(例如 ManyToManyField 或 ForeignKey)的任何字段。

get_fields() 返回一個元組,每個元素都是一個模型字段類型,不能直接作為字符串使用。 因此, field.name將返回字段名稱

my_model_fields = [field.name for field in MyModel._meta.get_fields()]

上面的代碼將返回一個包含所有字段名稱的列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM