Django的规范化文件
django-normalized-filefield的Python项目详细描述
行为尽可能接近其他字段的文件字段。
- 0.1.1
什么?
这个!
屏幕截图
(动画gif)
什么?!我不明白!
基本思想:我想处理文件输入与其他输入没有不同 输入!
- 如果在表单验证时文本输入的值可以“发回” 失败,文件输入也必须失败!
- 即使需要文件字段,用户也应该能够 清除它(就像他们可以删除所需文本字段中的文本一样)否 不管现场验证会失败!
HTML中的文件输入与其他输入(“文本”, “复选框”等)。典型的“文件”字段中涉及的数据量是 比其他类型的大得多。这是一件事 发送并返回(在表单验证错误的情况下)几个字符 在文本输入中,另一件事是完全发送和返回兆字节 文件中的数据-这不实用。
在服务器端,这意味着必须以不同的方式处理文件 也。通常它们被保存在一个临时的地方,这取决于 开发人员在需要的地方复制它们。
Django把这个样板文件藏起来 字段稍微简单一点。但它仍然不同于其他领域。作为 这个包演示了,不需要这个文件 可以使字段的行为类似于其他字段。
这个包通过扩展 django.forms.fields.FileField并将其行为更改为 尽可能接近其他输入类型。
它是用来代替 django.forms.fields.FileField但需要考虑一些因素。
版本
所有测试组合:
Django | Python |
---|---|
1.7.11 | 2.7.10 |
1.8.8 | 3.4.3 |
1.9.1 | 3.5.1 |
与filefield的区别
- 要详细展开此部分
不多…在某些情况下出现“清除”复选框 ClearableFileInput不呈现它。
另外,这个领域还有一个新的状态。除了“空”和 “initial”,传统的ClearableFileInput呈现为单个 HTML输入元素或作为带有链接和标签的双重输入 “当前”,此小部件还具有“选定”状态。这与 状态为“当前”链接,但它只呈现 没有链接的文件。它用于表单验证 失败,但“文件”字段正常,文件已保存到 临时存储器(缓存)。
用法
在型号
提供了一个模型字段,以便更简单地与模型一起使用。唯一的 与普通的models.field.FileField不同的是 指定另一个表单字段类,即NormalizedFileField。
from normalized_filefield.model_field import NormalizedFileField class MyModel(models.Model): a_file = NormalizedFileField(upload_to='media/place') ...
注意:与字段类命名的(可疑的)传统保持一致 在django(forms.field.FileFieldvsmodels.fields.FileField), 这个包还将表单和模型字段命名为相同的名称, NormalizedFileField。
形式
from normalized_filefield.form_field import NormalizedFileField class MyModelForm(forms.ModelForm): a_file = NormalizedFileField()
小部件normalized_filefield.widget.NormalizedFileInput仅表示 与此表单域类一起使用。
更改标记
可以更改小部件标记。没什么不同 常规的ClearableFileInput提供。一个区别是模板 字符串使用“format”语法而不是旧的“percent”语法 语法。
详细信息请参见normalized_filefield.widget.VerboseHTMLMixin。 标记选项。
- 要展开此部分
待办事项
- []文件缓存存储似乎没有自动清除,
- []可设置样式的版本,js
- []图像字段