我想为使用
我从文档中了解到,我需要:
我的
提交注册表单时出现错误信息:
abstractuser
的Django自定义用户模型创建注册表格。我不需要任何特殊功能,只是在需要时能够添加自定义字段。我从文档中了解到,我需要:
- 设置
AUTH_USER_MODEL
- 通过继承
AbstractUser
来定义自定义用户模型 - 通过继承
UserManager
来定义自定义模型管理器 - 子类化
UserCreationForm
和UserChangeForm
我的
settings.py
:AUTH_USER_MODEL = 'users.CustomUser'
我的models.py
文件:
from django.contrib.auth.models import AbstractUser, UserManager
class CustomUserManager(UserManager):
pass
class CustomUser(AbstractUser):
objects = CustomUserManager()
我的forms.py
:
from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = CustomUser
fields = UserCreationForm.Meta.fields
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = CustomUser
fields = UserChangeForm.Meta.fields
我的admin.py
:
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser
class CustomUserAdmin(UserAdmin):
model = CustomUser
add_form = CustomUserCreationForm
form = CustomUserChangeForm
admin.site.register(CustomUser, CustomUserAdmin)
我的views.py
文件:
from django.urls import reverse_lazy
from django.views import generic
from .forms import CustomUserCreationForm
class SignUp(generic.CreateView):
form_class = CustomUserCreationForm
success_url = reverse_lazy('login')
template_name = 'signup.html'
提交注册表单时出现错误信息:
OperationalError at /users/signup/
no such table: users_customuser
我已经清空了我的数据库并从头开始执行了 makemigrations
和 migrate
。我的表单可能有问题,管理员也可能有问题。
admin.py
中注册了吗?https://docs.djangoproject.com/en/2.0/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project - schrodingerscatcuriosity