创建自定义用户时的Django问题

时间:2018-10-27 10:37:29

标签: python django

我在Django中迈出了第一步。我正在尝试应用自定义的用户模型。

class HotelOwner(AbstractUser):
    hasHotel = models.BooleanField(default=False)

in。设置:

AUTH_USER_MODEL = 'booking.HotelOwner'

形式:

class RegistrationForm(UserCreationForm):

    class Meta:
        model = HotelOwner
        fields = '__all__'

在迁移中,我遇到了这个机会:

operations = [
    migrations.CreateModel(
        name='HotelOwner',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('password', models.CharField(max_length=128, verbose_name='password')),
            ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
            ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
            ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
            ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
            ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
            ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
            ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
            ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
            ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
            ('hasHotel', models.BooleanField(default=False)),
            ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
            ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
        ],
        options={
            'verbose_name': 'user',
            'verbose_name_plural': 'users',
            'abstract': False,
        },
        managers=[
            ('objects', django.contrib.auth.models.UserManager()),
        ],
    ),
]

RegistrationForm与所有字段一起显示,但是当我尝试登录时,每一列都出现错误,这应该在我的HotelOwner模型中,而它继承自AbstractUser。

OperationalError at /booking/login/

谢谢,这是我在这里的第一篇文章。

0 个答案:

没有答案