扩展 Django 用户模型:添加自定义字段

扩展 django 用户模型:添加自定义字段

本文将介绍如何在 Django 中扩展默认的 User 模型,无需使用一对一关联,直接添加自定义字段。通过创建自定义用户模型并配置 AUTH_USER_MODEL,你可以轻松地在用户注册和管理中包含额外的 boolean 或 choice fields,并确保这些字段在 admin 后台正确显示和管理。

创建自定义用户模型

Django 允许你通过继承 AbstractUser 或 AbstractBaseUser 类来创建自定义用户模型。AbstractUser 已经包含了 Django 默认的用户模型中的大部分字段和方法,因此通常是扩展用户模型的首选。

在你的 Django 应用的 models.py 文件中,创建如下所示的自定义用户模型:

from django.contrib.auth.models import AbstractUserfrom django.db import modelsclass CustomUser(AbstractUser):    # 添加你的自定义字段    is_premium = models.BooleanField(default=False, verbose_name="高级用户")    subscription_type = models.CharField(        max_length=20,        choices=[            ('basic', 'Basic'),            ('premium', 'Premium'),            ('enterprise', 'Enterprise'),        ],        default='basic',        verbose_name="订阅类型"    )    def __str__(self):        return self.username

在这个例子中,我们添加了两个自定义字段:

is_premium: 一个布尔字段,表示用户是否为高级用户。subscription_type: 一个字符串字段,使用 choices 参数定义了用户订阅类型的选项。

配置 AUTH_USER_MODEL

为了让 Django 使用你的自定义用户模型,你需要修改 settings.py 文件,设置 AUTH_USER_MODEL 变量:

AUTH_USER_MODEL = 'your_app_name.CustomUser'  # 将 your_app_name 替换为你的应用名称

注意: 这一步非常重要,确保 Django 使用你的自定义用户模型而不是默认的 User 模型。

今客CRM客户管理系统 v18.1 今客CRM客户管理系统 v18.1

今客CRM客户管理系统主要是为了帮助企业解决在日常工作中遇到的客户管理等难题而开发,通过今客CRM客户管理系统可以对企业事务中的不同功能进行操作,用户通过自定义字段类型可以达到适合不同企业的需求。在今客客户关系管理系统中管理着一个企业最为完整的客户信息,全面的客户信息覆盖在企业的市场营销、销售和服务与技术支持等企业整个前端办公领域的各个环节里。它为企业带来附加价值是不可限量的。今客CRM客户管理系

今客CRM客户管理系统 v18.1 11 查看详情 今客CRM客户管理系统 v18.1

执行数据库迁移

在修改了用户模型后,你需要执行数据库迁移来更新数据库结构:

python manage.py makemigrationspython manage.py migrate

makemigrations 命令会生成迁移文件,描述了你对模型所做的更改。migrate 命令会将这些更改应用到数据库。

在 Admin 后台注册自定义用户模型

为了在 Django Admin 后台管理你的自定义用户模型,你需要将其注册到 admin.py 文件中。通常,你需要继承 UserAdmin 类并进行一些自定义:

from django.contrib import adminfrom django.contrib.auth.admin import UserAdminfrom .models import CustomUserclass CustomUserAdmin(UserAdmin):    model = CustomUser    list_display = ['username', 'email', 'is_staff', 'is_premium', 'subscription_type'] # 自定义显示的字段    fieldsets = (        (None, {'fields': ('username', 'password')}),        ('Personal info', {'fields': ('first_name', 'last_name', 'email')}),        ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),        ('Important dates', {'fields': ('last_login', 'date_joined')}),        ('Custom Fields', {'fields': ('is_premium', 'subscription_type')}), # 添加自定义字段    )admin.site.register(CustomUser, CustomUserAdmin)

在这个例子中,我们创建了一个 CustomUserAdmin 类,继承自 UserAdmin。 我们修改了 list_display 属性,使其在用户列表页面显示自定义字段。我们还修改了 fieldsets 属性,将自定义字段添加到用户编辑页面。

注意事项

在项目初期进行自定义: 建议在项目初期就决定是否需要自定义用户模型。在项目后期更改 AUTH_USER_MODEL 可能会导致数据迁移问题。继承的选择: AbstractUser 提供了默认字段,而 AbstractBaseUser 则需要你完全定义用户模型。根据你的需求选择合适的基类。密码处理: 如果你选择 AbstractBaseUser,请确保正确处理密码的哈希和验证。迁移冲突: 在多人协作开发时,请注意数据库迁移的冲突,并及时解决。测试: 务必对自定义用户模型进行充分的测试,确保其功能正常。

总结

通过创建自定义用户模型并配置 AUTH_USER_MODEL,你可以轻松地扩展 Django 的用户模型,添加自定义字段,并在 admin 后台进行管理。这种方法避免了使用一对一关联带来的复杂性,使得用户信息的管理更加灵活和方便。 记住,在项目初期就进行自定义用户模型的决策,并进行充分的测试,以确保项目的稳定性和可维护性。

以上就是扩展 Django 用户模型:添加自定义字段的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/925001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月29日 09:42:12
下一篇 2025年11月29日 09:42:44

相关推荐

  • ETH强势的背后,以太坊战略储备公司:ETH的新庄家

    ‍ 当 eth 突破 3400,eth/btc 的汇率突破 0.026阻力,没人想到,eth 还能换庄。 年初的 ETH 像一辆脱轨的高速列车,一路冲高又坠崖,从 2024 年年末到 2025 年 4 月,ETH 价格从 4000 美元跌至 1500 美元,腰斩再腰斩,跑输 BTC、SOL,甚至落后…

    2025年12月8日 好文分享
    000
  • 币圈行情涨跌是不是只看BTC就够了 币圈免费观看行情网址推荐

    很多刚入圈的新手常听到一句话:“比特币涨,全市场就涨;比特币跌,全市场就跌。”这句话虽然在一定程度上反映了btc的市场主导地位,但并不能代表你只看btc行情就能完全掌握整个币圈的趋势。 因此,新手应综合观察BTC、ETH及主流赛道币种的行情变化,而不是只盯着一个币种。 以下是几个无需注册即可查看实时…

    2025年12月8日
    000
  • Binners Alpha、TrutaAI、Andken ERA:一个新时代?

    探索币安alpha推出trusta.ai合约与era代币空投热潮:值得参与吗? 币安Alpha、TrustaAI与ERA代币:一个新时代的开启? 加密市场再次掀起波澜!币安Alpha(Binance Alpha)正式推出Trusta.AI(TA)合约,并同步启动ERA代币的空投活动。这一系列动作究竟…

    2025年12月8日
    000
  • ETH和BTC 是什么?市场如何?一文看懂币圈金银币

    ETH / BTC 是什么? ETH/BTC 是以太坊价格(ETH)相对于比特币(BTC)价格的比率,代表用比特币来衡量以太坊的价值。 这个比率不仅代表着以太币相对比特币的兑换价格,更是观察市场信心、资金流向与生态演变的重要指标。 ETH/BTC:币圈金银比 以贵金属价格分析的角度,ETH / BT…

    2025年12月8日
    000
  • 代币经济体系重塑:新叙事下的机会与泡沫

    代币经济体系正处在重塑的关键阶段,在新叙事背景下带来了机遇的同时也伴随着风险与挑战,对投资者与项目方提出了更高的要求。 自比特币诞生以来,“代币经济”一直是加密行业最具颠覆性且最具争议的核心概念。与传统股权和债券不同,代币作为载体的经济系统具备融资、激励和治理的多重功能,因此在周期轮动中不断调整其叙…

    2025年12月8日
    000
  • 三分钟详细了解:稳定币以太坊还有上涨空间吗?

    关于它如何在与其他一层公链甚至它自身衍生出的二层网络竞争中站稳脚跟,仍存在诸多疑问。 然而,它终于迎来了一波显著的上涨趋势,近期走势已超越多个竞争对手。 我也与一些市场分析师进行了交流,他们指出,以太坊的行情尚未走到尽头。 以太坊突破 3000 美元关口,上行潜力犹存 在比特币(BTC)上周剧烈上涨…

    2025年12月8日 好文分享
    000
  • 稳定币、加密币、数字货币的区别

    稳定币、加密币与数字货币的核心区别在于属性与用途。1. 数字货币是广义概念,包含所有以电子形式存在的货币,如支付宝余额、游戏币等;2. 加密货币是数字货币的子集,使用区块链技术实现去中心化交易,如比特币、以太坊。 在数字资产的世界里,选择一个安全可靠的交易平台是投资成功的第一步。本文将为您梳理全球顶…

    2025年12月8日
    000
  • 币安创新区项目从Alpha到币安现货上市,有哪些条件?

    目录 币安Alpha还是上架Binance现货的前哨站吗?上现货的全是崭新的正规军?和融资额相比,这些新币的表现算成功吗?总结 一个月前,我们对binance alpha上进行了积分空投的项目进行了梳理,尝试从这些项目积分空投后的价格表现入手去分析市场对不同概念代币的喜好度。 这次,我们切换到了一个…

    2025年12月8日
    000
  • 比特币与Avalanche的差异是什么?哪个更有前景?Avalanche能值得长期持有吗?

    比特币与Avalanche在技术架构、应用场景、市场表现等方面存在显著差异。1. 比特币采用PoW机制,区块生成时间为10分钟,交易吞吐量有限,而Avalanche具备亚秒级确认和高TPS,通过子网机制实现多链并行;2. 比特币主要用于价值储存与资产配置,Avalanche则构建了涵盖借贷、DEX、…

    2025年12月8日
    000
  • Grok 是什么?如何运作?如何使用Grok AI 实时识别加密货币信号

    以下是你提供内容的伪原创版本,已确保不改变文章大意,同时保留了原始图片位置,未添加任何解释或说明: 目录 什么是Grok? 为什么情绪在加密货币中如此重要? 案例:马斯克推文后PEPE 币的价格暴涨(2024 年3 月) Grok 如何检测加密货币交易信号 代币提及激增 2.情绪分析 交易者如何利用…

    2025年12月8日 好文分享
    000
  • 三大加密法案通过对加密行业有何影响 利好还是利空

    美国国会通过的GENIUS、CLARITY和反CBDC三项法案标志着加密行业“野蛮生长”时代的终结,并迈向全面监管的新阶段。1.GENIUS法案为稳定币设立联邦监管框架,要求1:1储备支持,Circle的USDC成赢家,Tether和去中心化稳定币面临挑战;2.CLARITY法案明确数字资产分类,厘…

    2025年12月8日
    000
  • 稳定币是如何保持稳定的

    稳定币通过四种核心机制维持价值稳定:1.法币储备型通过1:1锚定法币并依赖发行机构信用与透明储备金;2.加密资产抵押型采用超额抵押锁定加密资产以应对价格波动;3.算法稳定币利用智能合约调节供应量维持价格平衡但易受极端市场影响;4.商品抵押型挂钩黄金等实物资产提供对抗通胀的有形支撑。这些机制分别适用于…

    2025年12月8日
    000
  • BTC 再创历史新高,山寨季还远吗?

    比特币(btc)在 2025 年 7 月再度刷新历史纪录,价格一度突破 12.3 万美元大关。然而,一个微妙却关键的变化正吸引市场目光:比特币主导地位(btc.d)从近期高点 66% 回落至 64.5%,创下自 5 月以来的最大跌幅。 在比特币耀眼的光芒下,沉寂多时的山寨币正悄然苏醒。Stellar…

    2025年12月8日
    000
  • 一文分析从 Binance Alpha 到 Binance 现货,有哪些条件?

    从 Binance Alpha 到 Binance 现货,需要满足哪些条件? 一个月前,我们对 Binance Alpha 上进行「积分空投」的项目进行了梳理,尝试从这些项目「积分空投」后的价格表现入手去分析市场对不同概念代币的偏好。 这一次,我们换了一个角度——聚焦那些从 Binance Alph…

    2025年12月8日
    000
  • 以太坊价格预测:ETH什么时候能突破 6000 美元?

    以太坊价格展望:ETH何时有望触及6000美元? 鲸鱼抛售期间为何ETH价格仍走高?未来走势如何? ETH 是否能够维持其突破 3,400 美元的表现,还是会在冲击 6,000 美元之前经历回调?如果链上动态和市场情绪持续向好,以太坊似乎正迈入一个强劲的上涨周期。目前,ETH 正构建关键的技术形态,…

    2025年12月8日 好文分享
    000
  • 什么是Caldera(ERA币)?Caldera代币经济与空投获取指南

    目录 Caldera 是什么?ERA 代币有多少种?代币分配代币解锁时间表ERA 有何用途Caldera Rollups 与以太坊Caldera 背后的技术团队与起源重要新闻与事件Caldera(ERA)是一项好的投资吗? 在区块链可扩展性的竞争格局中,一个新项目正吸引着市场的全部关注,这不仅是因为…

    2025年12月8日 好文分享
    000
  • Mayflower AI是什么?MAY币值得投资吗?Mayflower AI全面解析

    以下是对原文内容进行伪原创处理后的结果,确保不改变原意,同时保留图片位置: 目录 Mayflower AI是什么? Mayflower AI 基本资讯 币种名称: 币种代号: 币种介绍: NEOPIN的来源及其历史重要性 NEOPIN的关键特性 技术亮点与核心功能 MAY 供应资讯与代币经济学 MA…

    2025年12月8日
    000
  • 比特币实时行情怎么看?比特币最佳价格追踪工具历史走势数据解析

    在瞬息万变的数字货币市场中,能否精准把握行情波动,快速完成交易,是每一位投资者成功的关键。您是否曾因错过最佳买卖时机而懊恼?是否苦恼于无法找到一个既能提供全面实时数据,又能进行安全便捷交易的平台?现在,这些问题都将迎刃而解!我们为您带来了这款功能强大的数字货币APP。它不仅能让您轻松查看各类数字货币…

    2025年12月8日 好文分享
    000
  • 揭秘机构资金流向:本轮潜在山寨季的五大核心赛道

    随着比特币突破12万美元,以太坊重新站回3400美元,市场关于山寨季回归的讨论逐渐升温。 山寨季是否真正来临尚存不确定性,但如果新一轮资金流入周期开启,我们该关注哪些投资机会呢?本文从主观视角出发,围绕资产储备、ETF 候选、RWA、DeFi、稳定币五个赛道进行探讨。本文所提及的项目并非短期投机标的…

    2025年12月8日 好文分享
    000
  • 稳定币安全吗?会不会像其他加密货币一样崩盘?

    稳定币的风险主要源于其支撑机制和市场信心。1.法币抵押型稳定币风险较低但依赖发行方透明度;2.加密资产抵押型稳定币因抵押品波动需超额抵押,风险较高;3.算法稳定币无资产抵押,易因算法失效或市场恐慌导致脱锚甚至崩盘。此外,储备金不足、算法失效和信心崩塌是稳定币崩盘的核心问题,而监管趋严有助于提升透明度…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信