Skip to main content

django-formfield

项目描述

建造

版本

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)

安装

使用pipeasy_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=True , blank=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 级别上,我们可以提供 meta_info 任何有效的 json::

>>> 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 查看哈希)

已上传 source