2014-10-05 192 views
1

基本上,我想要实现的是在添加或编辑界面中选择文件后,显示图像缩略图的媒体表单。我尝试使用此代码,但它返回此错误。如何在django admin字段中添加自定义html?

Unknown field(s) (admin_image) specified for ImageMedia. 
Check fields/fieldsets/exclude attributes of class ImageMediaAdmin. 

这是模型类:

class ImageMedia(models.Model): 
    caption = models.CharField(max_length=64) 
    picture = models.ImageField(upload_to='image_media', blank=True) 

    def admin_image(self): 
     return '<img src="%s" height="300px"/>' % self.picture 
    admin_image.allow_tags = True 

    def __str__(self): 
     return self.caption 

这是管理类

class ImageMediaAdmin(admin.ModelAdmin): 
    list_display = ('caption', 'picture', 'admin_image') 
    search_fields = ('caption', 'picture') 
    fields = ('caption', 'picture', 'admin_image') 

admin.site.register(ImageMedia, ImageMediaAdmin) 
+0

您需要将它从'fields'中移除,因为它不是一个字段而是一个函数;这将摆脱眼前的问题。 – 2014-10-06 04:08:50

回答

1

您需要更改ImageMediaAdmin指定admin_image作为readonly_field

class ImageMediaAdmin(admin.ModelAdmin): 
    list_display = ('caption', 'picture', 'admin_image') 
    search_fields = ('caption', 'picture') 
    fields = ('caption', 'picture', 'admin_image') 
    readonly_fields = ['admin_image'] 
+0

它不是一个字段,而是一个可调用的字段。你不能在'fields'元组中调用。 – 2014-10-06 04:09:06

+0

这就是'readonly_fields''的用处。我以前使用过它,它的工作。 – schillingt 2014-10-06 04:16:48

+0

谢谢,这个工作真的很好。 – Nameless 2014-10-06 20:21:26

相关问题