ОБНОВЛЕНИЕ django 2.0.6
Я решал эту проблему в последних django 2.0.6 . Я хотел добиться того, чтобы изображение было миниатюрным, а некоторые подробности отображались в списке в django-admin.
Изображение ниже - мой список администратора по умолчанию.
![This is my default admin view](https://i.stack.imgur.com/U7Rxc.png)
Это мой models.py:
from django.db import models
from django.utils.safestring import mark_safe
# Create your models here.
class Product(models.Model):
title = models.CharField(max_length=120)
description = models.TextField()
price = models.DecimalField(decimal_places = 2, max_digits = 20, default = 00.00)
image = models.ImageField(upload_to=change_image_name, null=True, blank=True)
def image_tag(self):
if self.image:
return mark_safe('<img src="%s" style="width: 45px; height:45px;" />' % self.image.url)
else:
return 'No Image Found'
image_tag.short_description = 'Image'
def __str__(self):
return self.title
Обратите внимание, что мне пришлось использовать mark_safe () в строке изображения, иначе вы
получит экранированный HTML-код вместо миниатюры в django-admin
Наконец-то это мой admin.py
from django.contrib import admin
from .models import Product
# Register your models here.
class ProductAdmin(admin.ModelAdmin):
list_display = ('title', 'description', 'price', 'image_tag')
admin.site.register(Product, ProductAdmin)
Здесь мы должны зарегистрироваться Класс ProductAdmin , я не знал, что
и это не сработало.
Это результат:
![enter image description here](https://i.stack.imgur.com/Lj2bc.png)