在模板中对表单渲染有完全控制权
项目描述
在模板中对表单渲染有完全控制权。
作者:Gregor Müllegger 和许多贡献者 (见贡献者列表)
原始创建者:Bruno Renié启动了这个项目,并且多年来一直保持着它的进行。
许可证:BSD
要求:作业 – 阅读这篇文档。
安装
pip install -U django-floppyforms
将 floppyforms 添加到你的 INSTALLED_APPS 中
对于那些想要与纯Django小部件混合匹配的人,建议也将Django的表单模板目录放入你的模板目录中
# in your template configuration TEMPLATES = [{ ..., # inside the directories parameter 'DIRS': [ # include django's form templates os.path.join( os.path.dirname(django.__file__), "forms/templates/" ), ... # the rest of your template directories }]
有关更详细的文档,请参阅 docs 文件夹或在readthedocs上阅读
要安装 django-floppyforms的开发版本,请运行 pip install "https://github.com/jazzband/django-floppyforms/tarball/master#egg=django-floppyforms"。
帮助
在github的问题部分创建一个工单,或在freenode上的#django-floppyforms IRC频道提问。
您可以从django-floppyforms的维护者Gregor Müllegger那里获得关于django-floppyforms或任何其他Django相关工作的专业咨询。
错误
真的吗?好吧……请报告。或者更好,修复它 :) 我们很高兴在修复和测试错误的过程中帮助你。只需联系我们即可。
开发
谢谢你的询问!
获取代码
git clone git@github.com:jazzband/django-floppyforms.git cd django-floppyforms virtualenv env source env/bin/activate add2virtualenv .
安装开发要求
pip install "tox>=1.8"
目前,在运行测试时,您需要安装GeoDjango的要求。
运行测试
tox tox -e py36-22
您可以使用 tox -l 查看所有支持的测试配置。
变更日志
1.9.0
此版本更改了项目的兼容性矩阵。
- 我们现在支持以下Django版本
Django 2.2
Django 3.0
- 我们还在以下Python版本下进行测试
Python 3.6
Python 3.7
Python 3.8
此版本没有其他重大更改,但Django 1.11和2.1不再受支持。
1.8.0
这是在Jazzband组织下完成的第一个版本。
它收集了几个兼容性修复,以支持Django 1.11和2.1。
- 目前测试的 django-floppyforms 版本现在是
Django 1.11和Python 2.7或3.6
Django 2.1和Python 3.6
原则上,我们希望支持任何合理的Django和Python组合,只要它们仍然接收安全更新,所以如果你使用的是未经测试的组合并且遇到了问题,欢迎提交错误报告。
重大变更:
由于Django的小部件现在通过一个表单特定的模板渲染器进行渲染,但 floppyforms 小部件使用标准的渲染模板(它不会自动包含Django的表单模板),建议您手动将Django的表单模板目录直接放入自己的模板后端配置中。
如果您不添加以下内容,您可能会在使用纯小部件和floppyform小部件混合匹配时遇到问题
import django TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ ..., # your other template directories # django's own form template directories os.path.join(os.path.dirname(django.__file__), "forms/templates/", ], ... }, ... ]
1.7.0
1.6.2
#169: 使用属性 ClearableFileInput.initial_text、ClearableFileInput.input_text 和 ClearableFileInput.clear_checkbox_label 来确定模板中使用的文本。到目前为止,这与 Django 的行为不一致。
1.6.1
#167: 修复了 django-floppyforms 的 CheckboxInput.value_from_datadict,它与 Django 的行为不一致。
1.6.0
#160: 支持 Django 1.9!感谢 Jonas Haag 的补丁。
1.5.2
#156: 对 DecimalField 和 FloatField 的 min、max 和 step 属性进行了本地化,这可能导致无效的值(在相应的区域设置中将 0.01 渲染为 0,01)。这些属性不再进行本地化。感谢 Yannick Chabbert 的修复。
1.5.1
FloatField 现在填充 min、max 和 step 属性以匹配 DecimalField 的行为。省略 step 属性会导致只允许填充整数的控件(HTML 5 中 step 的默认值为 1)。
1.5.0
1.4.1
修复了源分发,包括 floppyforms/static/floppyforms/openlayers 中的所有文件。
1.4.0
现在每个控件都使用自己的模板。之前所有基于 HTML <input> 标签的控件都使用通用的 floppyforms/input.html 模板。现在控件各自有自定义元素,以便更容易定制。例如,CheckboxInput 现在使用 floppyforms/checkbox.html 而不是 floppyforms/input.html。有关可用控件及其使用的模板的完整列表,请参阅控件参考。
调整 GeoDjango 控件中使用的 SRID 以符合 Django 1.7。感谢 Tyler Tipton 的补丁。
现在官方支持 Python 3.2。
现在官方支持 Django 1.8。django-floppyforms 不再触发 Django 弃用警告。
将 OpenLayers 分发添加到 django-floppyforms 静态文件中,以便在使用 GIS 控件时更好地支持 HTTPS 设置(有关更多详细信息,请参阅 #15)。
修复:由于 setup.py 中的错误字符串编码,python setup.py bdist_rpm 失败。感谢 Yuki Izumi 的修复。
修复:当给定的数据为 'False' 和 u'False' 时,CheckboxInput 控件在 Python 2 中检测到不同的值。感谢 @artscoop 的补丁。
修复:现在可以使用模板中的as_hidden助手将MultipleChoiceField正确渲染为隐藏字段。之前没有工作,因为没有为MultipleChoiceField.hidden_widget设置值。
1.3.0
DateInput小部件以硬编码的“%Y-%m-%d”格式渲染。我们不允许自定义格式,因为浏览器提交HTML5日期输入字段时使用的正是该格式。感谢Bojan Mihelac提供的补丁。
将supports_microseconds属性添加到所有相关的小部件类。感谢Stephen Burrows提供的补丁。
为小部件上的Widget.is_hidden属性使用一个属性,以符合Django 1.7默认小部件实现。
文档中提到,当前在floppyforms.__future__中ModelForm的行为将在1.3版本中成为默认行为。这已被推迟一个版本,并将作为1.4版本的一部分。
1.2.0
floppyforms.models.ModelForm的子类没有将自动为现有模型字段创建的表单字段的小部件转换为floppyform变体。感谢Stephen Burrows提供的补丁,现在已更改。
之前您必须在模型表单中自己设置小部件。例如,您会编写
import floppyforms as forms class ProfileForm(forms.ModelForm): class Meta: model = Profile widgets = { 'name': forms.TextInput, 'url': forms.URLInput, ... }
现在这是自动完成的。但由于这是一个向后不兼容的更改,您需要使用特殊的导入
import floppyforms.__future__ as forms class ProfileForm(forms.ModelForm): class Meta: model = Profile
此功能将成为floppyforms 2.0中的默认行为。
有关更多信息,请参阅文档:http://django-floppyforms.readthedocs.org/en/latest/usage.html#modelforms
如果您向attrs kwargs(例如{'value': 1})添加了值为1的属性,您将无法在渲染的HTML中获得属性值(例如,value而不是value="1")。现在已修复,感谢Viktor Ershov的报告。
所有floppyform小部件类现在在__init__和render方法中接受一个template_name参数。感谢Carl Meyer提供的补丁。
1.1.1
修复Django 1.6的问题。
修复Django 1.4和某些GEOS版本上的GIS小部件问题。
1.1
添加了GenericIPAddressField。
增加了对Django 1.5和Python 3.3的支持。
停止支持Django 1.3。
GIS小部件已切换到稳定的OpenLayers版本,而不是开发版本。
修复了Textarea小部件模板,使其与非空的TEMPLATE_STRING_IF_INVALID设置一起工作。感谢Leon Matthews的报告。
修复了小部件渲染中的上下文处理。它没有像推入上下文那样频繁地弹出上下文。这可能导致模板中出现奇怪的行文,变量泄漏到外部作用域。感谢David Danier的报告。
在SelectDateWidget中的选择框添加了缺少的空选项。感谢fsx999的报告。
IntegerField现在自动将其提供的min_value和max_value(如果提供)传递给NumberInput小部件。
为Input小部件中的建议添加了对基本<datalist>元素的支持。
date、datetime和time输入不再本地化。HTML5规范要求渲染的值符合RFC3339,浏览器负责本地化。如果您仍然需要本地化的日期/时间输入,请使用Django提供的或覆盖相关小部件的_format_value()方法。
1.0
清理了attrs的行为
兼容Django 1.3和1.4
选择小部件中的<optgroup>支持
选择小部件:已将choices上下文变量重命名为optgroups。这不兼容之前的版本:如果您为Select小部件创建了自定义模板,则需要进行更新。
get_context()更可靠
添加了form、formrow、formfield、formconfig和widget模板标签。
添加了基于模板的表单布局系统。
添加了在更广泛的页面上下文中渲染小部件的能力,例如与django-sekizai兼容。
0.4
Django中的所有小部件都有其floppyforms等价物
添加了GeoDjango的小部件
项目详情
下载文件
下载适用于您平台的应用程序。如果您不确定要选择哪一个,请了解更多关于安装包的信息。
源代码分发
构建分发
哈希值 for django_floppyforms-1.9.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b3f6891463149b83c44d2bd6109ce32de3d848e2ff7dbc02c41c65562ddf633 |
|
MD5 | 9ef90b107eb23ae9103a4be6296e8492 |
|
BLAKE2b-256 | 823aaacc7037164068b2dedf9b2883cf685bcc317c63aeee56360e9d420b35ce |