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/582726/

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

(0)

大家都在看

  • Spring事务(二)-事务传播行为

    在Spring里,一个事务方法被另外一个事务方法调用时,两个方法的事务应该如何进行,说白话一点,就是说当出现异常需要回滚时,各个方法的数据操作是否要全部回滚,事务传播行为就是决定了…

    Linux 2023年6月6日
    070
  • NoteOfMySQL-07-索引

    1. 索引概述 创建索引的目的是为了优化数据库的查询速度,不添加索引的情况下需要遍历所有数据才能进行删、查、改等操作。 2. 索引存储类型 存储类型 支持的存储引擎 B型树(BTR…

    Linux 2023年6月14日
    080
  • 3.20 什么是环境变量,Linux环境变量有哪些?

    变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值。在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(…

    Linux 2023年6月7日
    087
  • 微信小程序开发(1)

    微信小程序开发(1) 微信小程序开发(1) 代码结构与基本配置 代码结构与基本配置 基本HelloWorld创建 开发框架——基本构成 微信开发者工具 版本控制 WXML wxml…

    Linux 2023年6月8日
    084
  • stat命令的实现

    任务详情 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep -r的使用 伪代码 产品代码 mystate.c,提交码云链接 测试代码,…

    Linux 2023年5月27日
    081
  • 在VS code使用Remote-SSH远程连接Linux 开发C++ 配置详细介绍

    VS code 远程连接服务器,编译C++ 一、前期准备 1、VS code安装 Remote-SSH插件 2、Windows安装SSH。 3、Linux服务器连接测试。 a.接通…

    Linux 2023年5月27日
    0136
  • USB转RS232串口应用

    RS232串口是用于数据串行通信传输的标准之一,该标准定义了信号的电气特性和时序、信号的含义以及连接器的物理尺寸和引脚排列。RS232协议规范定义的是DB25接口,实际上大多数RS…

    Linux 2023年6月7日
    098
  • apparmor 源码分析

    这里不对apparmor做介绍,记录一下源码分析过程。 static int __init apparmor_init(void) -> security_add_hooks…

    Linux 2023年6月13日
    064
  • docker save与docker export实现docker镜像与容器的备份

    本来想写一篇关于docker save/export/commit/load/import之间的关系的文章,后来看了看,已经有很多人写过了,我就不做重复工作了。 参见: docke…

    Linux 2023年6月6日
    097
  • Linux Shell

    Linux Shell By: luozaijin 22/6/23 [目录] Linux Shell [目录] Shell Color 语句常用命令 sleep 等待 timeou…

    Linux 2023年6月7日
    0152
  • 多进程知识简单总结

    多进程间的全局变量不共享 一、代码展示 import multiprocessing as mul_p import time egg1 = 1 def write(egg2, q…

    Linux 2023年6月14日
    077
  • 配置管理docker对象和守护进程

    使用 Docker 的主要工作是创建和使用各类对象:镜像、容器、网络、卷等。 1、Docker对象的标记 标记(Label):是一种将元数据应用于Docker对象(镜像、容器、网络…

    Linux 2023年6月8日
    075
  • [20211215]提示precompute_subquery补充.txt

    [20211215]提示precompute_subquery补充.txt –//前几天测试precompute_subquery,我仔细想一下好像以前看书或者别人的b…

    Linux 2023年6月13日
    066
  • 学习一下 SpringCloud (一)– 从单体架构到微服务架构、代码拆分(maven 聚合)

    一、架构演变 1、系统架构、集群、分布式系统 简单理解 (1)什么是系统架构? 【什么是系统架构?】 系统架构 描述了 在应用程序内部,如何根据 业务、技术、灵活性、可扩展性、可维…

    Linux 2023年6月11日
    084
  • 万字长文入门 Redis 命令、事务、锁、订阅、性能测试

    作者:痴者工良 Redis 基本数据类型 Redis 的 Key Redis Key 命名 设置 Key 过期时间 判断键是否存在 搜索 Key 判断键类型 删除键 RESP 协议…

    Linux 2023年5月28日
    089
  • QNAP container station安装 redis

    打开container station,即docker,安装Redis 选择最新的即可 命令处请务必在尾部添加语句: –requirepass “yourpasswor…

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