首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

扩展AbstractUser时每个用户的联系人列表

是指在使用Django框架进行用户认证和管理时,通过自定义用户模型并扩展AbstractUser类,为每个用户添加一个联系人列表的功能。

联系人列表是存储用户的联系人信息的数据结构,可以包含联系人的姓名、电话号码、电子邮件等信息。通过扩展AbstractUser,我们可以将联系人列表与每个用户关联起来,使用户能够方便地管理和查看自己的联系人。

在Django中,可以通过以下步骤来扩展AbstractUser并添加联系人列表功能:

  1. 创建一个新的用户模型,继承自AbstractUser类:
代码语言:txt
复制
from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    pass
  1. 在新的用户模型中添加联系人列表字段:
代码语言:txt
复制
from django.db import models

class Contact(models.Model):
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    phone = models.CharField(max_length=20)
    email = models.EmailField()

    def __str__(self):
        return self.name
  1. 将新的用户模型配置为Django的默认用户模型,在settings.py文件中添加以下配置:
代码语言:txt
复制
AUTH_USER_MODEL = 'your_app.CustomUser'
  1. 运行数据库迁移命令,创建新的用户模型和联系人列表表:
代码语言:txt
复制
python manage.py makemigrations
python manage.py migrate

现在,每个用户都具有一个联系人列表,可以通过CustomUser对象的contact_set属性访问该用户的联系人列表。例如,要获取当前登录用户的联系人列表,可以使用以下代码:

代码语言:txt
复制
from django.contrib.auth import get_user_model

User = get_user_model()
user = User.objects.get(username=request.user.username)
contacts = user.contact_set.all()

联系人列表的优势是可以方便地将用户的联系人信息与用户模型关联起来,使用户能够轻松地管理和查看自己的联系人。这对于需要实现用户间通讯或者联系人管理的应用非常有用。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储COS:https://cloud.tencent.com/product/cos
  • 腾讯云云服务器CVM:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能AI:https://cloud.tencent.com/product/ai
  • 腾讯云物联网IoT Hub:https://cloud.tencent.com/product/iothub
  • 腾讯云移动开发移动推送:https://cloud.tencent.com/product/umeng
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/vr
  • 腾讯云安全服务:https://cloud.tencent.com/product/safe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自定义Django认证系统技术方案

AbstractUser和AbstractBaseUser就是对User不同程度抽象,AbstractUser是User完整实现,可用于扩展User,AbstractBaseUser是高度抽象,可用于完全自定义...继承AbstractUser 除了代理模型和OneToOneField,扩展User新方式是定义新MyUser并继承AbstractUser,把User替换掉,再添加额外信息。...继承AbstractBaseUser 继承AbstractUser只能做扩展,如果我们想完全自定义用户模型,那么就需要继承AbstractBaseUser,再重写属性和方法。...参考AbstractUser实现: REQUIRED_FIELDS = ['email'] 这表示email是必填,在使用createsuperuser命令,会提示必须输入。...Template和Form不属于前后端分离技术,在学习可以选择性跳过。公众号后台回复“加群”,“Python互助讨论群”欢迎你。

1.2K10
  • Django User 模块之 AbstractUser 扩展详解

    最近在写博客,刚好写到用户注册注销模块,觉得这一方面还是挺有趣。当尝试掀开 Django 源代码一切 API 就不会变得那么摸不着。...如果只满足于用户注册只登记其邮箱或是用户名,Django 自带 User 模块既可以实现。但实际上,一个普遍要求是注册用户应该能够修改自己头像信息,邮箱信息,昵称信息等其他更灵活需求。...所以,对于一个需要更多需求 User 模块信息来说,我们可以继承 AbstractUser 并根据自己需求进行扩展。...AbstractUser与内置认证校验系统 内置用户AbstractUser 我们在之前讲过了model模型作用和父类作用,这次介绍内置用户AbstractUser就是Django内置一个关于用户操作类...= authenticate(username=username,password=pwd) 两个参数都是拿到前端用户输入信息 以上这篇Django User 模块之 AbstractUser 扩展详解就是小编分享给大家全部内容了

    1.9K10

    django 自带 user 字段扩展及头像上传

    from django.db import models # 有个坑,扩展字段后密码会明文,当我们提交时候需要进行设置,在后面的代码中会提到 class User(AbstractUser):...这种方法适合只需要扩展 User Model 中字段,会继承之前 AbstractUser 全部字段,系统自带 User 也是通过继承 AbstractUser 来实现 # 系统 User 源码...而官方推荐则可以不用考虑这个问题 4. 通过元类进行扩展 在网上还找到一种通过元类来扩展字段方法,这边附上链接 通过元类扩展 User 字段不多讲述。...和 renderer_classes 基本每个 view 都类似,但是涉及到图片上传,一定要添加 FileUploadParser 用户端上传图片后,我们直接保留到项目下。...至于如何设计每个人都不同,我思路是每个用户头像都保存到各自以用户名为名文件夹下,为了防止前一张头像被覆盖,所以用时间戳作为图像名,然后加上客户端回传后缀名就可以生成我们图片文件了。

    2.1K30

    自定义 DjangoUser Model,扩展 AbstractUser类注意事项

    自定义 User Model 方法1: 扩展 AbstractUser类 如果你对django自带User model刚到满意, 又希望额外field的话, 你可以扩展AbstractUser类:...方法3: 使用OneToOneField 如果你想建立一个第三方模块发布在PyPi上, 这一模块需要根据用户储存每个用户额外信息....当通过createsuperuser管理命令创建一个用户,用于提示一个字段名称列表。 class MyUser(AbstractBaseUser):     ...     ...是必需 4.扩展Django默认User 如果你完全满意Django用户模型和你只是想添加一些额外属性信息,你只需继承 django.contrib.auth.models.AbstractUser...扩展User必须重写。 UserChangeForm 依赖于User Model. 扩展User必须重写。

    6.1K20

    第一季 | 自定义用户模型,需要注意哪些坑位

    现在大部分web项目基本都会有第三方授权登录,那 django 实现这一需求,应该有很多包可以用,比如 social-auth-app-django,在使用这样工具用户模型要不要做相应改动?...django 提供用户认证模块 AbstractUser 与 AbstractBaseUser,而 AbstractUser 继承了 AbstractBaseUser,AbstractUser 是一个完整用户模型...再来看下第一季都有哪些可以回顾和用得上小技能 本次创建 django 项目,新建用户模型继承 AbstractUser ,它是高度集成类,里面定义字段,不会完全显示,在迁移数据库,就会创建。...如果项目只需要基本用户密码、用户类型等少数几个字段,这时候用 AbstractUser 会不合理,对数据库资源浪费,也会降低数据库效率。...REQUIRED_FIELDS 必须设置,通过 createsuperuser 管理命令创建用户,用于提示字段名称列表 USERNAME_FIELD 必须设置,设置认证标识,标识字段 unique

    77210

    使用Django实现微信公众号用户openid登录认证

    最近在用Django做一个小项目,需要将微信用户与网站用户进行关联,由于是微信订阅号,没有oauth网页授权权限,只能退而求其次,在响应中获取用户openid,来唯一标识用户。...Django中用户模型继承和扩展AbstractUser,在用户模型中添加openid字段(models.py): class Users(AbstractUser): openid...= models.CharField(max_length=100,blank=True,null=True,verbose_name="openid",unique=True) 我们扩展用户模型...Users.DoesNotExist: return None 2、在配置文件setting.py中指定认证后端: 在底层,Django 维护一个“认证后台”列表...当调用django.contrib.auth.authenticate() ,Django 会尝试所有的认证后台进行认证。

    2.1K10

    Django 继承AbstractUser扩展用户模型

    Django 继承AbstractUser扩展用户模型 by:授客 QQ:1033553122 测试环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 官方下载地址...User Model,用于记录用户用户名,密码,邮箱,姓,名等个人信息,这些信息可能无法满足实际需求,这种情况下,需要拓展用户模型,如果项目还没有使用 Django 内置 User 模型,可以采用继承...AbstractUser 拓展方式进行拓展(如果已经使用了Django内置模型,Django会为其生成相关数据库迁移文件和数据库表,采用继承方式拓展会比较麻烦。)...,没有对 AbstractUser 做任何拓展,所以,如果我们可以自己继承 AbstractUser,并根据自己需求进行拓展。...python manage.py migrate 成功后,Django便会使用我们自定义用户模型作为默认用户模型了 注意:一定要在配置好 AUTH_USER_MODEL 变量后再迁移数据库 参考链接

    1.6K20

    django 解决扩展自带User表遇到问题

    首先要扩展自带auth_user表我就放个图吧, ?...补充知识:Python+ django + pycharm项目之扩展默认user表 django为我们提供了默认user表,但是在实际开发项目的基本是不满足实际情况,所以呢学习web知识,扩展默认...AbstractUser类,从而继承原来user表字段,又可以增加自己需要字段: 在users 用户appmodels.py做如下修改: from django.db import models...from django.contrib.auth.models import AbstractUser # 引入原来Abstract类 # 创建新类来继承原来类,并拓展自己字段 class...最后迁移数据库,使用makemigrations 和 migrate 就可以完成user表扩展了,刷新数据库,表是不是已经生成了0.0 以上这篇django 解决扩展自带User表遇到问题就是小编分享给大家全部内容了

    1.3K60

    Django auth组件

    三.扩展默认auth_user表 一.认证系统 Django自带一个用户认证系统,用于处理用户账户、群组、许可和基于cookie用户会话。...三.扩展默认auth_user表 虽然内置认证系统很好用,但是auth_user表字段只有固定几个,实际应用中需要字段更多,所以需要对默认auth_user表进行扩展,第一间想到方法是新建另外一张表通过一对一和内置...auth_user表关联,这样的确可以满足要求,但是其实可以更好,就是通过继承内置AbstractUser类,来定义一个自己Model类。...from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): phone = models.CharField...(max_length=255) address = models.CharField(max_length=255) 通过这种方法扩展内置auth_user表之后,一定要在settings.py

    92640

    Django项目知识点(二)

    点击上方 毛利学python,选择置顶或星标 第一间送达Python 技术干货! 5. 自定义过滤器和模板标签 5.1 新建templatetags模块 ?...用户注册 官方文档 django强大之处在于开发效率高,内置了权限模块之类很多常用功能。django内置权限系统有大自定义功能扩展,不需要重复造轮子。...,如email user app下model from django.contrib.auth.models import AbstractUser,UserManager as _UserManager...通过上面改写UserManagercreate_superuser创建超级用户可以不提供email字段 6.2 AbstractUser AbstractUser这是django特定抽象用户 导入方式...: from django.contrib.auth.models import AbstractUser 创建用户model,继承了AbstractUser class User(AbstractUser

    76330

    【Django】 开发:补充知识

    有需要上网现查现学东西。 分页 分页是指在web页面有大量数据需要显示,为了阅读方便在每个页页中只显示部分数据。 好处: 方便阅读 减少数据提取量,减轻服务器压力。...Paginator对象 负责分页数据整体管理 对象构造方法 参数 需要分类数据对象列表 每页数据个数 返回值: Paginator对象 Paginator属性...它将被浏览器用于“另存为…”对话框 对于CSV文件中每一行,调用writer.writerow,传递一个可迭代对象,如列表或元组。...auth扩展字段 如果需要在默认auth表上扩展字段,如phone 添加新应用 定义模型类 继承 AbstractUser settings.py中 指明 AUTH_USER_MODEL = ‘应用名...process=4 # 每个进程线程个数 threads=2 # 服务pid记录文件 pidfile=uwsgi.pid # 服务目志文件位置

    6.4K30

    django 关于User模型

    if user is not None: # 执行验证通过后代码 else: # 执行验证没有通过代码。 扩展用户模型: Django内置User模型虽然已经足够强大了。...那么这时候我们就需要扩展用户模型了。扩展用户模型有多种方式。这里我们来一一讨论下。 1. 设置Proxy模型: 如果你对Django提供字段,以及验证方法都比较满意,没有什么需要改。...继承自AbstractUser: 对于authenticate不满意,并且不想要修改原来User对象上一些字段,但是想要增加一些字段,那么这时候可以直接继承自django.contrib.auth.models.AbstractUser...示例代码如下: from django.contrib.auth.models import AbstractUser class User(AbstractUser): telephone =...REQUIRED_FIELDS:一个字段名列表,用于当通过createsuperuser管理命令创建一个用户提示。 is_active:一个布尔值,用于标识用户当前是否可用。

    1.1K30
    领券