添加到fieldsets的模型方法抛出FieldError

时间:2017-08-28 12:54:48

标签: python django methods django-admin

我添加了一个模型方法,可以在管理员中成功显示图片,但仅限于list_display,如果我将其添加到fieldsets,目标是在编辑或添加时显示它。它会引发错误。

Exception Value:    

Unknown field(s) (thumbnail) specified for Image. Check fields/fieldsets/exclude attributes of class ImageAdmin.

我确信我正在做一些“非法”的事情。或者尝试做一些没有意义的事情。因为如果我去添加一个尚不存在的图像,它也无法显示图像。

我很清楚这一切是如何结合在一起的。有人可以解释一下吗?

谢谢

在我的models.py

from django.utils.html import format_html

class Image(models.Model):
    image = models.ImageField(blank=True, upload_to=_image_upload)

    def thumbnail(self):
        return format_html(
            '<img src="{}" width="auto" height="250">'.format(self.image.url)
        )

admin.py

@admin.register(Image)
class ImageAdmin(admin.ModelAdmin):
    fieldsets = (
        ('Edit or upload image', {
            'fields': ('thumbnail','...',) #throws a FieldError
        }),
    )
    list_display = ('thumbnail', '...') #works

1 个答案:

答案 0 :(得分:0)

尝试将readonly_fields添加到ImageAdmin

@admin.register(Image)
class ImageAdmin(admin.ModelAdmin):
    readonly_fields = 'thumbnail'  # ADD THIS
    fieldsets = (
        ('Edit or upload image', {
            'fields': ('thumbnail','...',) #throws a FieldError
        }),
    )
    list_display = ('thumbnail', '...') #works

如果您只需要管理员的缩略图,请参阅how to use AdminThumbnail from django-imagekit