效果:管理后台显示缩略图
![在这里插入图片描述](https://img-blog.csdnimg.cn/f1ed1aa4bc89407a8028fed283aab2c2.png)
models.py添加image_img()
class reward(models.Model):
id = models.AutoField(primary_key=True)
reward_name = models.CharField(max_length=135, blank=True, null=True, verbose_name=u'奖品名称')
reward_image = models.ImageField(max_length=135, blank=True, null=True, verbose_name=u'奖品照片',upload_to='static\images')
reward_score = models.IntegerField(blank=True, null=True,verbose_name=u'奖品积分')
reward_inventory_total = models.IntegerField(blank=True, null=True, verbose_name=u'奖品入库总量')
reward_inventory_used = models.IntegerField(blank=True, null=True, verbose_name=u'奖品使用量')
reward_inventory_left = models.IntegerField(blank=True, null=True, verbose_name=u'奖品剩余量')
class Meta:
db_table = u'reward'
verbose_name = u'奖品'
verbose_name_plural = u'奖品'
def __str__(self):
return self.reward_name
def image_img(self):
if not self.reward_image:
return '无'
return format_html(
"""<div><img src='{}' style='width:50px;height:50px;' ></div>""",
self.reward_image.url)
image_img.short_description = '图片'
admin.py不需要在列表页显示image字段了,而是显示image_img字段
class rewardAdmin(admin.ModelAdmin):
list_display = ('id','reward_name','image_img','reward_score','reward_inventory_total',
'reward_inventory_used','reward_inventory_left')
ordering = ('reward_name',)
settings.py
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urls.py
from django.contrib.staticfiles.urls import static
from . import settings
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)