在我的第一个Django应用程序期间,我设法解决了这个“路障”,其中我试图从我的.forms文件中扩展用户模型,而form.py看起来像这样:
#forms.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
class UserRegisterForm(UserCreationForm):
email = forms.EmailField(required=True)
phone = forms.CharField(max_length=50, required=False)
class Meta:
model = User
fields = ['username', 'email', 'phone', 'password1', 'password2']
class UserLoginForm(AuthenticationForm):
class Meta:
model = User
fields = ['username', 'password']
在我的.models文件中,我只有一个“配置文件”模型,该模型正在admin.py中注册:
#admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import *
from .forms import UserRegisterForm
admin.site.unregister(User)
class CustomUserAdmin(UserAdmin, UserRegisterForm):
fieldsets = UserAdmin.fieldsets + (
(('Personal info'), {'fields': ('phone',)}),
)
admin.site.register(User, CustomUserAdmin)
admin.site.register(Profile)
...并且我得到了这个提示(请记住,我也尝试只传递我的表单类,这导致分配了更多错误):
#error
FieldError at /admin/auth/user/1/change/
Unknown field(s) (phone) specified for User. Check fields/fieldsets/exclude attributes of class CustomUserAdmin.
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/auth/user/1/change/
Django Version: 3.0.4
因此最终目标是在“用户” /“个人信息”中提供另一个字段(已在forms.py中扩展),并且在从管理页面中创建新用户时也很高兴获得该字段。谢谢您的任何帮助/想法。