一、安裝
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管理后台: