数据迁移导致错误属性错误:类型对象'User'没有属性"normalize_username"?



我正在尝试创建一个数据迁移,以将用户添加到数据库中。但是,当我尝试这样做时,我会遇到属性错误。

我已经运行了IPDB来解决问题,我尝试评论用户对象的字段,以查看其中一个是否引起了错误,并且我尝试添加" user.save((">

# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2019-02-08 21:23
from __future__ import unicode_literals
from django.db import migrations
from django.conf import settings

def create_urechr_user(apps, schema_editor):
    staffPosition = apps.get_model("hr", "staffPosition")
    User = apps.get_model(settings.AUTH_USER_MODEL)
    user = User.objects.create_user(
        username = "myName",
        password = "test",
        is_active = True,
        email = "",
    )
    staff = staffPosition.objects.get(pk = 95)
    user.save()
    urec_staff = staffPosition.objects.create(
        parent_staff_position = staff,
        user_id = user,
        title = "My title here",
    )
    urec_staff.save()
class Migration(migrations.Migration):
    dependencies = [
        ('hr', '0003_add_verbose_name_20190213_1519'),
    ]
    operations = [
        migrations.RunPython(create_urechr_user),
    ]

AttributeError: type object 'User' has no attribute 'normalize_username'

您应该使用 create()而不是 create_user(),因为usermanager在迁移中不起作用。确保您以正确的方式生成密码。

from django.contrib.auth.hashers import make_password
def create_urechr_user(apps, schema_editor):
    # ...
    user = User.objects.create(
        username = "myName",
        password = make_password("test"),
        is_active = True,
        email = "",
    )
    # ...

最新更新