Django 如何获取 Model 字段列表?

在平时的开发过程中,避免不了需要获取 Model 中的字段列表。

那需要把所有字段都再复制一份吗?这样的话就太麻烦了,而且后期也不好维护。

其实,Django 内置了一个方法,可以很轻松解决这个问题。

下面以 User 表举一个例子。

>>> from django.contrib.auth.models import User
>>> User._meta.get_fields()
(, , , , , , , , , , , , , )

通过 get_fields() 方法会返回一个 tuple,每个元素都是 model field 类型。

这个结果并不是我们想要的,我们需要的是字段名称列表。只需要对每个 field 字段取 name 属性就可以了。

>>> [field.name for field in User._meta.get_fields()]
['logentry', 'id', 'password', 'last_login', 'is_superuser', 'username', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined', 'groups', 'user_permissions']

这样就可以了。

接下来,我们将其抽象出一个函数,这样如果有需要直接调用就可以了。

def get_model_fields(model):
    fields = [field.name for field in model._meta.get_fields()]
    return fields

以上就是本文的全部内容,如果觉得还不错的话,欢迎 点赞转发关注,感谢支持。

推荐阅读:

  • 计算机经典书籍
  • 技术博客 硬核后端开发技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
  • Go 程序员 Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。
  • 面试题汇总 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

Original: https://www.cnblogs.com/alwaysbeta/p/16240439.html
Author: yongxinz
Title: Django 如何获取 Model 字段列表?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/642821/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 『硬核』Spring完整版学习笔记,动力节点王鹤

    Spring学习笔记(来自王鹤老师讲的最新版Spring) spring笔记官方下载地址:动力节点官网 视频观看地址 https://www.bilibili.com/video/…

    技术杂谈 2023年7月24日
    067
  • 使用ThreadLocal请务必remove

    特别注意,web容器的线程是重复使用的,web容器使用了线程池,当一个请求使用完某个线程,该线程会放回线程池被其它请求使用,这就导致一个问题,不同的请求还是有可能会使用到同一个线程…

    技术杂谈 2023年5月31日
    081
  • C#实现无物理边距 可打印区域的绘图打印 z

    经常在开发实际的应用程序中,需要用到图形绘制和打印程序。如何实现完整的精确打印和绘图是需要注意许多细节地方的。最近在遇到打印问题的时候,仔细研究一阵,总结这篇博文,写得有点杂乱,看…

    技术杂谈 2023年6月1日
    081
  • ssh以root用户远程登录失败

    参考文献: http://blog.csdn.net/lichangzai/article/details/39379153 http://blog.csdn.net/yasi_x…

    技术杂谈 2023年5月31日
    083
  • ELK时间戳

    ELK时间戳 在我们使用ELK过程中,总会遇到时间戳的问题。首先 logstash如果没有加以处理的话,那么它默认使用的是采集的时间戳,然后存入 ES。那么这样的话时间显示的是错误…

    技术杂谈 2023年6月21日
    098
  • SQL语句之if,case

    其他函数 、 case 语句 聚合函数max() , min() , avg() , sum() , count () if( bool表达式 , expr1 , expr2 )如…

    技术杂谈 2023年7月25日
    088
  • 【Python-虚拟环境】项目的启动,从隔离开发环境开始

    在实际项目开发中,通常会根据自己的需求去下载各种相应的框架或库。 但是,每个项目使用的框架或库并不一样,甚至版本也不一样。这样如果直接在 Python环境中安装各种各样的库,就会造…

    技术杂谈 2023年7月24日
    083
  • FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTP

    您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇…

    技术杂谈 2023年5月31日
    097
  • 使用CXF发布webservice服务及注意要点

    1、什么是webservice Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应…

    技术杂谈 2023年7月11日
    073
  • CSP-S2022 游记

    JS-00564 C276 旁边是两个妹子 上午到学校休息了一会,没有干什么活,为下午考试留足精力。 在学校附近吃过午饭就去华山饭店了。大概十二点五十到考场,发现没有座位,全是上午…

    技术杂谈 2023年6月21日
    069
  • 嵌入式编程中使用qemu能够做什么?

    学习QEMU以后,为了拓展视野,才发现QEMU可以做这么多的事情。 仿真裸机或RTOS编程 qemu的是指令翻译进行的,所以可以根据实际的需求进行相应的裸机开发和学习,比如语言学习…

    技术杂谈 2023年6月1日
    087
  • 多态

    总结: 多态是一种代码现象 也是一种思想 定义:一个对象,在不同时刻表现出来的多种形态 前提: 存在继承/实现关系 子类重写父类方法/实现类重写接口方法 父类引用指向子类对象/接口…

    技术杂谈 2023年6月21日
    086
  • HTML&CSS-盒模型运用居中方式合集

    { margin: 0; padding: 0; list-style: none; 清除浏览器默认样式 .father1 { width: 400px; height: 400p…

    技术杂谈 2023年6月21日
    081
  • DAX:跟关系相关的函数

    在表格数据模型中,用户可以创建关系,并可以沿着关系的方向自动进行交叉过滤。但是在 计算列中,必须通过RELATED 和 RELATEDTABLE函数来检索相关联的表。当使用CALC…

    技术杂谈 2023年5月31日
    094
  • 人体的数学美思考

    人贵为万物之灵长,并不仅仅只是”会思考的芦苇”,造化在赐与人智慧的同时,也将最美的形体一并赠赏,从数学角度而言,人的形体构造不仅符合物理力学法则,而且还暗合…

    技术杂谈 2023年5月31日
    084
  • golang interface用法

    接口是一个或多个方法签名的集合,任何类型的方法集中只要拥有与之对应的全部方法,就表示它”实现”了该接口无须在该类型上显式添加接口声明。 所谓对应方法,是指有…

    技术杂谈 2023年5月31日
    0109
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球