美文网首页
Django的记录(三) 模型

Django的记录(三) 模型

作者: IT_小马哥 | 来源:发表于2019-10-19 22:52 被阅读0次

模型相关

  • 图片上传以及显示
    如果想支持从本地上传图片,需要把img设置为ImageField。
    然后需要安装一个图片库
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 = '新闻图片'

相关文章

网友评论

      本文标题:Django的记录(三) 模型

      本文链接:https://www.haomeiwen.com/subject/gnxomctx.html