Как отобразить изображение в детальном представлении модели в Django Admin?
Я хочу отображать изображение в детальном представлении модели при просмотре через Django Admin. Я видел другие сообщения об отображении изображений в представлении списка всех экземпляров модели в Django Admin. Но мне интересно видеть изображение на странице, где можно редактировать данные.
models.py
class Label(models.Model):
label = models.TextField()
fragment = models.ForeignKey('Fragment', models.DO_NOTHING, null=True)
in_english = models.BooleanField(default=True)
validated = models.BooleanField(default=False)
def __str__(self):
return str(self.fragment)
admin.py
@admin.register(Label)
class LabelsAdmin(admin.ModelAdmin):
fields = ("label", "in_english", "validated", )
# What I tried. This is not working even after adding 'image' to the fields. I get an error.
# def image(self, obj):
# return format_html('<img src="{0}" />'.format(f"/static/fragments/{obj}.png"))
вы создаете метод типа display_image.
def display_image(self, obj):
# get image url
image_url = '<your_image_url>'
if image_url is not None:
return format_html('<img src="{}">', image_url)
return None
Добавить 'display_image' в список полей
fields = ("label", "in_english", "validated", 'display_image')
тогда сделайте это поле доступным для чтения
readonly_fields = ['display_image']