xadmin引入django-stdimage在列表頁預覽圖片


一、安裝

pip install django-stdimage

安裝django-stdimage庫

https://github.com/codingjoe/django-stdimage

GitHub主頁

 

二、配置demo/settings.py:

'stdimage',
# django-stdimage

 其他的配置不用更改

也沒有靜態資源文件

 

三、模型product/models.py:

修改產品圖片字段

from ckeditor_uploader.fields import RichTextUploadingField
from django.db import models


# Create your models here.
from stdimage import StdImageField


class ProductInfo(models.Model):
# 產品表

product_name = models.CharField(max_length=32, verbose_name="產品名稱")
# 產品名稱

product_picture = StdImageField(
upload_to='pictures/%Y%m%d',
blank=True,
null=True,
variations={
'large': (600, 400),
'thumbnail': (100, 100, True),
'medium': (300, 200),
},
delete_orphans=True,
verbose_name="產品圖片"
)
# 產品圖片

product_describe = models.CharField(max_length=255, verbose_name="產品描述")
# 產品描述
product_manager = models.CharField(max_length=11, verbose_name="產品經理")
# 產品經理
product_detail = RichTextUploadingField(verbose_name="產品詳情", default="")
# 產品詳情,帶有上傳圖片功能的富文本編輯器
create_time = models.DateTimeField(auto_now_add=True, verbose_name="創建時間")
# 創建時間
update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="修改時間")
# 修改時間

class Meta:
db_table = 'product_info'
# 設置表名,默認表名是:應用名稱_模型類名
# 帶有應用名的表名太長了

verbose_name = '產品列表'
verbose_name_plural = "產品列表"

def product_picture_preview(self):
return '<img src="%s" />' % self.product_picture.thumbnail.url

product_picture_preview.short_description = "產品圖片"
product_picture_preview.allow_tags = True

def __str__(self):
return self.product_name

 

四、admin注冊product/admin.py:

list_display = [
'id',
'product_name',
'product_picture_preview',
# 產品圖片,不是product_picture
'product_describe',
'product_manager',
'product_detail',
'create_time',
'update_time',
]
# 要顯示的字段列表

 

五、admin管理后台:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM