Django:为用户指定的未知字段(头像)
Django: Unknown field(s) (avatar) specified for User
所以我有这个模型
from django.db import models
from django.conf import settings
# Create your models here.
class ProfileImage(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
editable=False
)
avatar = models.ImageField()
def user_avatar(self):
return self.profileimage.avatar
还有我的admin.py
from django.contrib import admin
# Register your models here.
from django.contrib.auth.admin import UserAdmin
UserAdmin.fieldsets += ('Custom fields set', {'fields': ('avatar',)}),
我正在使用用户模型,并向其添加了一个图像字段,但我想在管理页面中查看图像字段,所以我在 admin.py 中这样做了,但是当我进入用户管理页面时出现此错误:
Unknown field(s) (avatar) specified for User. Check fields/fieldsets/exclude attributes of class UserAdmin.
您的代码应如下所示
已更新
Models.py
from django.contrib.auth.models import User
from django.db import models
class ProfileImage(models.Model):
user = models.OneToOneField(User,
on_delete=models.CASCADE,
editable=False)
avatar = models.ImageField()
def user_avatar(self):
return self.profileimage.avatar
User.add_to_class('user_avatar', user_avatar)
admin.py
UserAdmin.fieldsets += ('Custom fields set', {'fields': ('user_avatar',)}),
好吧,你应该尝试更改你的管理代码,然后你稍微建模一下,试试这个:
models.py
class Profile(models.Model):
user = models.OneToOneField(
verbose_name=_('User'),
to=settings.AUTH_USER_MODEL,
related_name='profile',
on_delete=models.CASCADE
)
avatar = models.ImageField()
和admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from accounts.models import ProfileImage
User = get_user_model()
class ProfileInline(admin.StackedInline):
model = ProfileImage
max_num = 1
can_delete = False
class MyUserAdmin(UserAdmin):
inlines = [ProfileInline]
# unregister old user admin
admin.site.unregister(User)
admin.site.unregister(Group)
# register new user admin that includes a UserProfile
admin.site.register(User, MyUserAdmin)
所以我有这个模型
from django.db import models
from django.conf import settings
# Create your models here.
class ProfileImage(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
editable=False
)
avatar = models.ImageField()
def user_avatar(self):
return self.profileimage.avatar
还有我的admin.py
from django.contrib import admin
# Register your models here.
from django.contrib.auth.admin import UserAdmin
UserAdmin.fieldsets += ('Custom fields set', {'fields': ('avatar',)}),
我正在使用用户模型,并向其添加了一个图像字段,但我想在管理页面中查看图像字段,所以我在 admin.py 中这样做了,但是当我进入用户管理页面时出现此错误:
Unknown field(s) (avatar) specified for User. Check fields/fieldsets/exclude attributes of class UserAdmin.
您的代码应如下所示 已更新 Models.py
from django.contrib.auth.models import User
from django.db import models
class ProfileImage(models.Model):
user = models.OneToOneField(User,
on_delete=models.CASCADE,
editable=False)
avatar = models.ImageField()
def user_avatar(self):
return self.profileimage.avatar
User.add_to_class('user_avatar', user_avatar)
admin.py
UserAdmin.fieldsets += ('Custom fields set', {'fields': ('user_avatar',)}),
好吧,你应该尝试更改你的管理代码,然后你稍微建模一下,试试这个: models.py
class Profile(models.Model):
user = models.OneToOneField(
verbose_name=_('User'),
to=settings.AUTH_USER_MODEL,
related_name='profile',
on_delete=models.CASCADE
)
avatar = models.ImageField()
和admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from accounts.models import ProfileImage
User = get_user_model()
class ProfileInline(admin.StackedInline):
model = ProfileImage
max_num = 1
can_delete = False
class MyUserAdmin(UserAdmin):
inlines = [ProfileInline]
# unregister old user admin
admin.site.unregister(User)
admin.site.unregister(Group)
# register new user admin that includes a UserProfile
admin.site.register(User, MyUserAdmin)