Django的记录(三) 模型

2019-10-19  本文已影响0人  IT_小马哥

模型相关

pip install Pillow

upload_to 选项指明该字段的图片保存在MEDIA_ROOT目录中的哪个子目录,需要在settings先设置MEDIA_ROOT ,

#直接在settings.py的末尾写入:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

模型字段为:
app/models.py

class NewsBase(models.Model):
  #verbose_name代表的是字段的说明,用于admin等显示字段。admin系统中一般默认显示字段名。
  img =  models.ImageField(max_length=255,null=True,verbose_name='新闻图片',blank=True,upload_to='mgh')

app/admin.py

@admin.register(News)
class NewsAdmin(admin.ModelAdmin):
    list_display = ['title','img_data']
    #显示缩略图,本人数据都是从网上爬取,当图片有问题才从本地上传图片
  #本地上传的图片在数据库一般是一个相对路径
    def img_data(self, obj):
        if obj.img and hasattr(obj.img, 'url'):
          #数据从网上爬的一般img字段就是一个链接,因此这样处理
            if 'http' in obj.img.url:
                return format_html('<img src="{0}" width="150px" height="150px"/>'.format(obj.img))
            else:
                return format_html('<img src="{0}" width="150px" height="150px"/>'.format(obj.img.url))
        else:
            return None
    #对于方法的描述,会显示为名称
    img_data.short_description = '新闻图片'

上一篇下一篇

猜你喜欢

热点阅读