Python &引用;实例=我的“模型(用户=用户)”;抛出;我的“U型用户”;必须是一个";“用户”;使用AbstractBaseUser时的实例

Python &引用;实例=我的“模型(用户=用户)”;抛出;我的“U型用户”;必须是一个";“用户”;使用AbstractBaseUser时的实例,python,django,django-users,Python,Django,Django Users,我通过以下方式创建了AbstractBaseUser #users/managers.py 从django.contrib.auth.base\u用户导入BaseUserManager 从django.utils.translation导入ugettext\u lazy作为_ 类CustomUserManager(BaseUserManager): """ 自定义用户模型管理器,其中电子邮件是唯一标识符 用于身份验证而不是用户名。 """ def create_user(自我、电子邮件、密码、*

我通过以下方式创建了AbstractBaseUser

#users/managers.py
从django.contrib.auth.base\u用户导入BaseUserManager
从django.utils.translation导入ugettext\u lazy作为_
类CustomUserManager(BaseUserManager):
"""
自定义用户模型管理器,其中电子邮件是唯一标识符
用于身份验证而不是用户名。
"""
def create_user(自我、电子邮件、密码、**额外_字段):
"""
使用给定的电子邮件和密码创建并保存用户。
"""
如果不是电子邮件:
提高值错误(uuu('Du skal indstesteen email'))
电子邮件=自我规范化电子邮件(电子邮件)
user=self.model(email=email,**额外字段)
user.set_密码(password)
user.save()
返回用户
def create_超级用户(自我、电子邮件、密码、**额外_字段):
"""
使用给定的电子邮件和密码创建并保存超级用户。
"""
额外字段。setdefault('is_staff',True)
extra_fields.setdefault('is_superuser',True)
额外字段。setdefault('is_active',True)
如果extra_fields.get('is_staff')不正确:
raise VALUE ERROR(u(“超级用户必须具有is_staff=True”))
如果extra_fields.get('is_superuser')不为True:
raise VALUE ERROR(u('Superuser必须具有is_Superuser=True'))
返回self.create_用户(电子邮件、密码、**额外_字段)
#用户/models.py
从django.db导入模型
从django.contrib.auth.models导入AbstractBaseUser
从django.contrib.auth.models导入许可证
从django.utils.translation导入gettext\u lazy作为_
从django.utils导入时区
从.managers导入CustomUserManager
从django.conf导入设置
类CustomUser(AbstractBaseUser,PermissionsMixin):
email=models.EmailField(_('E-mail'),unique=True)
is_active=models.BooleanField(默认值=True)
日期=models.DateTimeField(默认值=时区.now)
想要电子邮件=models.BooleanField(u(“发送电子邮件”),默认值=True)
is_active=models.BooleanField(默认值=True)
is_staff=models.BooleanField(默认值=False)
用户名\字段='电子邮件'
必填_字段=[]
objects=CustomUserManager()
定义(自我):
返回self.email
我的创作形式

#用户/forms.py
类UserRegisterPerform(UserCreationForm):
email=forms.EmailField(错误消息={“唯一”:“此用户已经存在!”)
password1=forms.CharField(
widget=forms.PasswordInput,
label=“Password”,
)
password2=forms.CharField(
label=“Password(再次)”,
widget=forms.PasswordInput,
help_text=“”,
)
错误消息={
“密码不匹配”:(“Wups-不相等”)
}
类元(UserCreationForm):
模型=自定义用户
字段=('email',)
然后是一个模型

#project/models.py
从django.db导入模型
从django.utils导入时区
从django.conf导入设置
将my_模型分类(models.model):
user=models.ForeignKey(settings.AUTH\u user\u MODEL,on\u delete=models.CASCADE,null=True)
起始价格=型号。浮动字段(默认值=0)
last_price=models.FloatField(默认值=0)
我在设置中设置了
AUTH\u USER\u MODEL='users.CustomUser'

问题是,在我的观点中,我有

from .models import my_model
def MyView(request):
    user = request.user
    instance = my_model(user=user)  #This fails
    
    if request.method == "POST":
        form = my_form(request.POST,instance = instance)    
     .
     .
     .
    return render(request, "my_template.html",context=context)

并且在本地运行(例如
python manage.py runserver
一切正常,但是在投入生产时,我在
instance=my_model(user=user)
处遇到了一个错误

”:“my_model.user”必须是“user”实例。

注意:我开始只使用基本用户对象(例如,不是抽象用户),但由于我发现需要对其进行配置,我已经删除了我的数据库和所有迁移。创建了上面的模型,运行了
makemigrations
migrate
。我可以创建用户、更新用户、删除用户等,但不能对其进行筛选(看起来像这样)

这一行是错误表单=我的表单(request.POST,instance=instance)。