覆盖管理员/用户中的“个人信息”字段?

时间:2020-05-19 16:22:02

标签: python django django-admin

在我的第一个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中扩展),并且在从管理页面中创建新用户时也很高兴获得该字段。谢谢您的任何帮助/想法。

0 个答案:

没有答案
相关问题