如何修改默认的Django用户表[重复]

Posted

技术标签:

【中文标题】如何修改默认的Django用户表[重复]【英文标题】:How to Modify the default Django user table [duplicate] 【发布时间】:2020-04-22 05:09:55 【问题描述】:

如何修改默认 Django 用户表和自定义用户表应由“名字”、“姓氏”、“性别”、“电子邮件(主键)”、“电话号码”字段组成。这个怎么做? forms.py

class UserForm(ModelForm):
    class Meta():
        model= User
        fields = 'First_name','Last_name','Gender', 'email','Phone_number'

【问题讨论】:

这能回答你的问题吗? Extending the User model with custom fields in Django 【参考方案1】:

您需要创建自定义模型来扩展 Django 用户模型。 看documentation

您的字段示例

from django.contrib.auth.models import User

class ExtendedUser(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    First_name = models.CharField(max_length=100)
    Last_name= models.CharField(max_length=100)
    Gender = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
    Phone_number = models.CharField(max_length=100)

然后在你的表单中使用它

【讨论】:

虽然将字段命名为 first_namelast_namegenderphone_number 以遵循 PEP8 会更好。 这里怎么做email作为主键? @kumar,试试email = models.CharField(max_length=100, primary_key=True) @weAreStarDust 我试过了,但显示错误“user_id can not be null”

以上是关于如何修改默认的Django用户表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在django中应用装饰器

如何修改默认的root密码

如何在 Django 默认用户表中保存电子邮件和姓名字段

django用户认证系统——修改密码6

Django实现简单的用户添加删除修改等功能

如何在mongodb中扩展django的默认用户?