Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:我不知道want是我的代码出了问题_Django_Django Models_Django Admin - Fatal编程技术网

Django:我不知道want是我的代码出了问题

Django:我不知道want是我的代码出了问题,django,django-models,django-admin,Django,Django Models,Django Admin,所以我试图使用UserModel在我的模型中添加一个imagefield,所以我制作了这个模型 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

所以我试图使用UserModel在我的模型中添加一个imagefield,所以我制作了这个模型

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)
我让管理员查看用户中的imagefield, 管理员


我不知道我的代码出了什么问题,当我打开一个用户查看图像字段时,有人知道问题出在哪里吗?

在管理
字段中
字段集中
希望您列出数据库中的实际列
user\u avatar
是您编写的一个函数,因此您不能在
user
模型中将其列为字段,因为该表中不存在该字段

为所有类型的用户信息建立一个更通用的模型,而不仅仅是像这样的图像

class Profile(models.Model):
    """
    Profile model
    """

    user = models.OneToOneField(
        verbose_name=_('User'),
        to=settings.AUTH_USER_MODEL,
        related_name='profile',
        on_delete=models.CASCADE
    )
    avatar = models.ImageField()
然后,您可以使用
request.user.profile.avatar
访问虚拟形象,或者在管理员中注册您的
profile
模型作为
用户的内联

from django.contrib import admin
from django.contrib.auth import get_user_model

from myapp.accounts.models import Profile

User = get_user_model()


class ProfileInline(admin.StackedInline):
    model = Profile
    max_num = 1
    can_delete = False

class MyUserAdmin(admin.UserAdmin):
    inlines = [ProfileInline]

# unregister old user admin
admin.site.unregister(User)

# register new user admin that includes a UserProfile
admin.site.register(User, MyUserAdmin)
from django.contrib import admin
from django.contrib.auth import get_user_model

from myapp.accounts.models import Profile

User = get_user_model()


class ProfileInline(admin.StackedInline):
    model = Profile
    max_num = 1
    can_delete = False

class MyUserAdmin(admin.UserAdmin):
    inlines = [ProfileInline]

# unregister old user admin
admin.site.unregister(User)

# register new user admin that includes a UserProfile
admin.site.register(User, MyUserAdmin)