繁体   English   中英

我可以删除现有字段或在 Django 的默认用户数据库中添加更多字段吗?我还可以使用 email 而不是用户名登录吗?

[英]Can I remove existing fields or add some more fields in the default User DB in Django?, Also can i login using email instead of username?

我想使用默认的 Django 数据库“用户”为我的项目创建一个数据库,我发现 Django 有一个主键用户名并且一些字段不是必需的,如果我可以向现有的数据库“用户”添加更多字段伟大的...

我想使用 email 而不是用户名登录并将某些字段更改为必填。 另外,我可以添加一个字段“地址”和“手机”吗?

我正在使用 Django 3.5.2

我尝试使用以下方法添加新字段,但仍然找不到更改主键和必填字段的方法

forms.py ->


class CustomerUserForm(forms.ModelForm):
    class Meta:
        model=User #django default model
        fields=['first_name','last_name','password','email','username']
        widgets = {
        'password': forms.PasswordInput()
        }
class CustomerForm(forms.ModelForm):
    class Meta:
        model= models.CRegistration
        fields=['address','mobile','profile_pic']
       

模型.py ->

class CRegistration(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
    profile_pic = models.ImageField(upload_to='profile_pic/CustomerProfilePic/', null=True, blank=True)
    address = models.CharField(max_length=100)
    mobile = models.CharField(max_length=20) #null=True
    status = models.BooleanField(default=False)

是的,您可以在 django 中自定义用户表。您也可以使用 email 进行身份验证

这是下面的链接,本文准确解释了您的需求。 有关更多信息,请参阅 django 文档

Django 具有 email 身份验证的自定义用户

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM