当前位置: 首页 > article >正文

上传图片的预览

解决:在上传图片时,1显示已有的图片 2显示准备替换的图片


![[Pasted image 20241218061930.png]]


在这里插入图片描述

在这个案例中可以预览到 【已有与准备替换】 2张图片

具体流程

1创建一个共享组件

与manage.py同级别路径的文件

manage.py
custom_widgets.py

在这里插入图片描述

# custom_widgets.py
from django import forms
from django.utils.safestring import mark_safe
from django.template.loader import render_to_string

class CustomClearableFileInput(forms.ClearableFileInput):
    template_name = 'custom_clearable_file_input.html'

    def render(self, name, value, attrs=None, renderer=None):
        context = self.get_context(name, value, attrs)
        return mark_safe(render_to_string(self.template_name, context))

2 在templates中创建这个组件用到的html文件

templates/custom_clearable_file_input.html
{% if widget.is_initial %}
    <div class="current-image">
        <p>当前图片:</p>
        <img src="{
    { widget.value.url }}" style="max-width: 200px; max-height: 200px;" alt="现有使用中的图片" />
        {% if not widget.is_required %}
            <span class="clearable-file-input">
                <input type="checkbox" name="{
    { widget.checkbox_name }}" id="{
    { widget.checkbox_id }}">
                <label for="{
    { widget.checkbox_id }}">{
  { widget.clear_checkbox_label }}</label>
            </span>
        {% endif %}
    </div>
{% endif %}
<div class="new-image">
    <p>上传新图片:</p>
    <input type="file" name="{
    { widget.name }}" accept="image/*" id="{
    { widget.attrs.id }}">
    &l

http://www.kler.cn/a/442256.html

相关文章:

  • python实现pdf转word和excel
  • Chrome谷歌浏览器如何能恢复到之前的旧版本
  • Lora理解QLoRA
  • 【全面解析】深入解析 TCP/IP 协议:网络通信的基石
  • springcloud中的Feign调用
  • Subprocess check_output returned non-zero exit status 1
  • 【从零开始入门unity游戏开发之——C#篇16】C#什么是面向对象编程?
  • Kioptix Level 4(0基础教学)
  • 机器学习经典算法(scikit-learn)
  • 深入探索Vue.js中的v-show指令:动态控制DOM元素的高级技巧
  • Pandas教程之二十九: 使用 Pandas 处理日期和时间
  • 键盘常见键的keyCode和对应的键名
  • VMware OpenWrt怎么桥接模式联网
  • 视频直播点播平台EasyDSS推拉流技术结合无人机推流在道路交通巡检场景中的应用
  • 穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列
  • libilibi项目总结(18)FFmpeg 的使用
  • SSM 与 Vue 双剑合璧:新锐台球厅管理系统的匠心设计与完美实现
  • javaEE--计算机是如何工作的-1
  • AI技术在演示文稿制作中的应用一键生成PPT
  • zlmediakit搭建直播推流服务
  • Visual studio中C/C++连接mysql
  • (笔记)lib:no such lib的另一种错误可能:/etc/ld.so.conf没增加
  • Java中ArrayList和LinkedList的区别?
  • 富途证券C++面试题及参考答案
  • 先进的多模态专家需要掌握哪些知识和技能课程
  • 单片机STM32、GD32、ESP32开发板的差异和应用场景