認情況下,django的ModelForm顯示的是圖片的路徑,其實并不友好。那么現在來修改一下,讓它顯示為一張縮略圖:
在此之前,先打開源文件中的 widgets.py (site-packages/django/forms/widgets.py)看一下:
class ClearableFileInput(FileInput):
clear_checkbox_label = _('Clear')
initial_text = _('Currently')
input_text = _('Change')
template_name = 'django/forms/widgets/clearable_file_input.html'
看template_name的值,打開看一下:
{% if widget.is_initial %}{{ widget.initial_text }}: <a href="{{ widget.value.url }}">{{ widget.value }}</a>{% if not widget.required %}
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}">
<label for="{{ widget.checkbox_id }}">{{ widget.clear_checkbox_label }}</label>{% endif %}<br>
{{ widget.input_text }}:{% endif %}
<input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>
好像看不太懂,但又能看懂一部分,能看出來這就是imagefiled 的html代碼,現在將內容拷貝一下,創建一個自己的widgets, 在template文件夾中創建widget文件夾并在其中創建文件 ImageField.html, 將內容拷貝進去,并依葫蘆畫瓢改一下:
{% if widget.is_initial %}{{ widget.initial_text }}: <img src="{{ widget.value.url }}" width="100" height="50"/>{% if not widget.required %}
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}" lay-skin="primary">
<label for="{{ widget.checkbox_id }}">{{ widget.clear_checkbox_label }}</label>{% endif %}<br>
{{ widget.input_text }}:{% endif %}
<input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>
在應用中創建文件 ImageWidget.py 文件(可以放在應用中的任何包中)
from django.forms.widgets import ClearableFileInput
class ImageWidget(ClearableFileInput):
template_name = 'widget/ImageField.html'
tempate_with_clear = ''
繼承ClearableFileInput, template_name 改成剛創建的html模版.
在model form中使用:
class NodesForm(ModelForm):
class Meta:
model = Nodes
exclude = ('site','order_num', 'node_path', 'node_level', 'node_group')
# 如果有很多image字段,可以這樣
widgets_fields_dict = {k: ImageWidget for k in ("picture", "face_picture", "icon", 'icon_sel', "image1", 'image2', 'image3', 'image4')}
widgets = widgets_fields_dict
下面看看效果:
Imagine – 適用于 Windows 的圖像瀏覽器
– 簡體中文語言跟進
– 幫助文翻譯為件簡體中文
– 快捷鍵設置優化(鼠標中鍵切換模式)
– 集成多個增強格式插件(具體可看下面:集成插件)
– 重新制作安裝包為 32Bit&64Bit 二合一版本
– 語言精簡(保留韓文、簡體中文、繁體中文)
– 還有更多強大的功能可使用插件實現
(https://www.nyam.pe.kr/dev/imagine/)
數碼相機原始圖像格式插件(3FR、ARW、CR2、CRW、DCR、DNG、ERF、KDC、MOS、MRW、NEF、ORF、PEF、RAF、RAW、SRW、SR2、X3F)
JBIG 格式插件(JBG、JBIG)
AVIF 格式插件(AVIF、AVIFS)
Google WebP 格式插件(WEBP)
SVG 可擴展矢量圖形圖像格式插件(SVG、SVGZ)
– 查看并保存圖像/動畫文件
– 支持眾多圖像/動畫文件格式:
PNG,JPG,GIF,BMP,PCX,TGA,TIFF,ICO,CUR,LBM的,ANI,FLI,WMF,EMF等。
[collapse]- 從動畫文件中提取單個/所有幀
– 顯示圖像/動畫文件的詳細信息
– 顯示 EXIF 信息
– 顯示或隱藏透明度
– 大量的壓縮文件格式的支持:
ZIP, RAR, 7Z, ALZ, HV3, CBZ, CBR, CB7, ARJ, LZH, EGG, TAR, ISO, CAB, ETC。
– 64 位版本
– Unicode 版本
– 多語言支持:英語,中國,德語,西班牙語,俄羅斯,丹麥,韓國,日本等。
– 縮圖瀏覽器
– 捕獲屏幕
– 批量轉換
– 幻燈片
– 平鋪視圖(檢查無縫拼接的紋理,對于游戲開發商/游戲模組非常有用)
– 創建動畫
– 創建多個頁面的圖像
– 操縱和編輯圖像:
垂直翻轉和水平
旋轉左,右和自由旋轉
灰度
負片
更改顏色深度(1,4,8,16,24和32位)
交換顏色
調整每個像素,百分比或標準尺寸。
幾個可用的重采樣過濾器。
效過濾器,包括一個方便的預覽瀏覽器
新增,保存和編輯調色板
設置和刪除的透明度
還有更多…
– 可定制的快捷鍵為鍵盤和鼠標
– 命令行參數的支持
– 外殼擴展支持
– 添加插件的支持
– Total Commander 列表和壓縮插件
– 不寫不必要的注冊表(基于INI文件的配置)
– 完全優化的二進制代碼(微小,純凈,快速,整齊)[/collapse]
v1.1.5,2022 年 8 月 5 日
– 新增:支持高 DPI
城通盤:https://url61.ctfile.com/d/12483661-24755207-68db44 訪問碼:3333
123 盤:https://www.123pan.com/s/QdiA-y5pmh.html
天翼云:https://cloud.189.cn/t/2YrQF3VB7f2i
藍奏云:https://www.lanzoux.com/b00ztqb2j 密碼:aqpp
*請認真填寫需求信息,我們會在24小時內與您取得聯系。