在Django管理-多对多内联管理视图中显示图像

在Django管理-多对多内联管理视图中显示图像,django,django-models,django-admin,Django,Django Models,Django Admin,我有以下型号: class AModel(BaseModel): a_id = models.AutoField(primary_key=True) name = models.CharField(max_length=200) a_images = models.ManyToManyField(BModel) class BModel(BaseModel): images = ImageField(upload_to='/') 我想在AModel管理表单中显

我有以下型号:

class AModel(BaseModel):
    a_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=200)
    a_images = models.ManyToManyField(BModel)

class BModel(BaseModel):
    images = ImageField(upload_to='/')
我想在AModel管理表单中显示BModel图像。我可以使用

class BModelInline(admin.TabularInline):
    model = AModel.a_images.through
如何在AModel form admin中以表格格式显示图像预览?我已经尝试过重写formfields,但它似乎不起作用

formfield_overrides = { models.ImageField: {'widget': AdminImageWidget}}

class AdminImageWidget(AdminFileWidget):
    def render(self, name, value, attrs=None):
        output = []
        if value and getattr(value, "url", None):
            image_url = value.url
            file_name=str(value)
            output.append(u' <a href="%s" target="_blank"><img src="%s" alt="%s" width="150px"/></a> ' % \
                (image_url, image_url, file_name))
        output.append(super(AdminFileWidget, self).render(name, value, attrs))
        return mark_safe(u''.join(output))
formfield_overrides={models.ImageField:{'widget':AdminImageWidget}
类AdminImageWidget(AdminFileWidget):
def render(自身、名称、值、属性=无):
输出=[]
如果值和getattr(值,“url”,无):
image\u url=value.url
文件名=str(值)
输出。追加(u“”%\
(图像url、图像url、文件名))
append(super(AdminFileWidget,self).render(名称、值、属性))
返回标记_safe(u“”。连接(输出))

如果您只想在
AModel
的管理模型中显示这些图像,您是否尝试过类似的方法

class AModelAdmin(admin.ModelAdmin):
    readonly_fields = ('images',)

    def images(self, obj):
        html = '<a href="{url}" target="_blank"><img src="{url}" /></a>'
        return format_html(''.join(html.format(url=image.url) for image in obj.a_images))
类AModelAdmin(admin.ModelAdmin):
只读_字段=('images',)
def图像(自身、obj):
html=“”
返回format_html(“”.join(obj.a_图像中图像的html.format(url=image.url))
它也可以通过django模型中的方法实现