跳转到主要内容

在模板中对表单渲染有完全控制权

项目描述

Jazzband Build Status

在模板中对表单渲染有完全控制权。

  • 作者: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/",
        ],
        ...
    },
    ...
]
  • #176:修复与GIS小部件一起使用的隐藏文本区域的HTML验证问题。

  • #191 + #196 + #209:支持Django 1.11和2.1。感谢MrJmad和dryice提供的补丁。

  • #194:删除对Python 2.6和Python 3.2的官方支持。

  • #204:使用HTTPS为OpenStreetMap链接。感谢dryice提供的补丁。

1.7.0

  • #171:修复 openlayers.html 模板中GIS小部件图像的路径。使用了与Django管理一起提供的文件,但其命名在1.9中已更改。我们将其作为供应商了解,以便更好地控制它。

  • #174: 在 BaseGMapWidget 中支持设置自己的 Google Maps 密钥。有关详细信息,请参阅文档

1.6.2

  • #169: 使用属性 ClearableFileInput.initial_textClearableFileInput.input_textClearableFileInput.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: 对 DecimalFieldFloatFieldminmaxstep 属性进行了本地化,这可能导致无效的值(在相应的区域设置中将 0.01 渲染为 0,01)。这些属性不再进行本地化。感谢 Yannick Chabbert 的修复。

1.5.1

  • FloatField 现在填充 minmaxstep 属性以匹配 DecimalField 的行为。省略 step 属性会导致只允许填充整数的控件(HTML 5 中 step 的默认值为 1)。

1.5.0

  • #148: 在表单和字段中添加了对自定义 label_suffix 参数的支持。

  • 现在 floppyforms/input.html 中的内容现在被 {% block content %} 包裹,以便更容易扩展。

  • #70: DecimalField 现在填充 minmaxstep 属性以实现更好的客户端验证。在您的 <form> 标签上使用 novalidate 属性来禁用浏览器中的 HTML5 输入验证。感谢 caacree 的补丁。

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_valuemax_value(如果提供)传递给NumberInput小部件。

  • Input小部件中的建议添加了对基本<datalist>元素的支持。

  • datedatetimetime输入不再本地化。HTML5规范要求渲染的值符合RFC3339,浏览器负责本地化。如果您仍然需要本地化的日期/时间输入,请使用Django提供的或覆盖相关小部件的_format_value()方法。

1.0

  • 清理了attrs的行为

  • 兼容Django 1.3和1.4

  • 选择小部件中的<optgroup>支持

  • 选择小部件:已将choices上下文变量重命名为optgroups。这不兼容之前的版本:如果您为Select小部件创建了自定义模板,则需要进行更新。

  • get_context()更可靠

  • 添加了formformrowformfieldformconfigwidget模板标签。

  • 添加了基于模板的表单布局系统。

  • 添加了在更广泛的页面上下文中渲染小部件的能力,例如与django-sekizai兼容。

0.4

  • Django中的所有小部件都有其floppyforms等价物

  • 添加了GeoDjango的小部件

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪一个,请了解更多关于安装包的信息。

源代码分发

django-floppyforms-1.9.0.tar.gz (1.4 MB 查看哈希值)

上传时间: 源代码

构建分发

django_floppyforms-1.9.0-py2.py3-none-any.whl (306.2 kB 查看哈希值)

上传时间: Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面