美文网首页
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