我有这个模型(这是我写的全部):
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, UserManager
class MyUser(AbstractBaseUser):
name = models.CharField(max_length=50)
lastn = models.CharField(max_length=50)
username = models.CharField(max_length=40, unique=True, db_index=True)
email = models.EmailField(max_length=255, unique=True, db_index=True)
city = models.CharField(max_length=50)
phone = models.CharField(max_length=50)
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['email']
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
objects = UserManager()
当我尝试同步时(python manage.py syncdb) 我看到了这个错误:
您刚刚安装了Django的auth系统,这意味着您没有定义任何超级用户。 你想现在创建一个吗? (是/否):是的
Usuario:dulce
电子邮件:dulce@dulce.com
密码:
密码(再次):
TypeError:create_superuser()只需要4个参数(给定3个)
任何人都可以帮助我吗?
很抱歉,如果您无法理解(我来自墨西哥)
答案 0 :(得分:0)
Debes definir una clase MyUserManager
que herede de BaseUserManager
y crear dos funciones dentro de esta clase create_user
y create_superuser
。
Te dejo el enlace deladocumentación,de donde yo estoy creando mi propia clase de usuario personalizado,aunquododavíanoconsigo que funcione peroyasolucionéelerror que te esta dando a ti。
<强> Customizing authentication in Django 强>
Estapáginatambiénmeayudó
<强> Using Configurable User Models in Django 强>
好的 @pancakes 我尝试用英语,但我的英语非常糟糕。
您应该定义MyUserManager
类继承BaseUserManager
并创建create_user
和create_superuser
函数。
这是我编写自己的自定义用户模型的链接
(上面的链接)