首页 > 解决方案 > 使用 django-username-email 包扩展用户模型

问题描述

我是 django 的初学者,我真的需要你的帮助。我正在尝试扩展 Django 提供的 User 模型,以便仅使用电子邮件和 pass 而不是用户名登录用户

为此,我使用了很棒的包https://pypi.org/project/django-username-email,它提供了一种非常简单的方法。

但是我也想扩展它以添加诸如“工作”之类的字段

我试图这样做,但这并不能帮助我朝着目标前进。

from django.db import models
from django.contrib.auth import get_user_model
# Create your models here.

User = get_user_model()


class CustomUser(User):
    position = models.CharField(blank=True, max_length=255)

你能帮我扩展一个扩展的 UserModel 吗?谢谢你

标签: pythondjangodjango-models

解决方案


为了扩展您的模型,您只能继承abstract模型。对于您当前的目的,您应该继承AbstractBaseUser

from django.contrib.auth.models import AbstractBaseUser
class CustomUser(AbstractBaseUser):
    position = models.CharField(blank=True, max_length=255)

推荐阅读