跳转到主要内容

django-formfield

项目描述

BUILD

版本:

0.4

文档:

https://django-formfield.readthedocs.org/en/latest/

下载:

http://pypi.python.org/pypi/django-formfield/

源码:

https://github.com/jsoa/django-formfield

变更日志

  • 0.4*
    • Django 1.9/1.10/1.11 兼容性

    • 更简洁的错误信息

    • 表单内表单修复

  • 0.3
    • Django 1.6/1.7/1.8 兼容性

    • Python 3.4 兼容性

    • 表单参数现在可以动态

  • 0.2
    • 修复Django 1.5安装问题

  • 0.1.3
    • 修复了当表单的初始值评估为False时的错误

    • pep8相关修复

入门指南

django-formfield是一个表单字段,它接受一个django表单作为其第一个参数,并验证以及按预期渲染每个表单字段。是的,一个表单内嵌套表单,在梦中?有两种类型的字段可用,分别是FormFieldModelFormField。对于ModelFormField,数据存储在json中。对于FormField,数据简单地返回为Python字典(form.cleaned_data)

安装

使用pip或easy_install进行安装非常简单。

pip install django-formfield

或者

easy_install django-formfield

添加到已安装的应用程序

INSTALLED_APPS = (
    ...
    'formfield',
    ...
)

示例

from django.db import models
from django import forms

from formfield import ModelFormField

class PersonMetaForm(forms.Form):
    age = forms.IntegerField()
    sex = forms.ChoiceField(choices=((1, 'male'), (2, 'female')), required=False)


class Person(models.Model):
    name = CharField(max_length=200)

    meta_info = ModelFormField(form=PersonMetaForm)

这将导致类似的结果(使用管理界面)

https://github.com/jsoa/django-formfield/raw/master/docs/_images/ss001.png

ModelFormField自动设置为null=Trueblank=True,这是因为验证是在内部表单上完成的。因此,如果我们点击更改表单上的保存按钮,我们会看到以下内容

https://github.com/jsoa/django-formfield/raw/master/docs/_images/ss002.png

如果我们提供有效数据的更改,您在检索数据时应得到一个Python字典。

>>> person = Person.objects.get(pk=1)
>>> person.meta_info
{u'age': 12, u'sex': u'1'}

表单是强制有效输入的唯一因素,在幕后,数据正在被序列化为JSON。因此,在Python级别上,我们可以提供任何有效的JSON作为meta_info:

>>> from sample_app.models import Person
>>> data = {'some': 'thing', 'is': 'wrong', 'here': 'help!'}
>>> p = Person.objects.create(name="Joan", meta_info=data)
>>> p.meta_info
{'is': 'wrong', 'some': 'thing', 'here': 'help!'}

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

django-formfield-0.4.tar.gz (807.2 kB 查看哈希值)

上传时间

由支持