Как отобразить изображение в детальном представлении модели в Django Admin?

Я хочу отображать изображение в детальном представлении модели при просмотре через Django Admin. Я видел другие сообщения об отображении изображений в представлении списка всех экземпляров модели в Django Admin. Но мне интересно видеть изображение на странице, где можно редактировать данные. What I have without the image.

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']
Вернуться на верх