django-formfield
项目描述
- 版本:
0.4
- 文档:
- 下载:
- 源码:
变更日志
- 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表单作为其第一个参数,并验证以及按预期渲染每个表单字段。是的,一个表单内嵌套表单,在梦中?有两种类型的字段可用,分别是FormField和ModelFormField。对于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)
这将导致类似的结果(使用管理界面)
ModelFormField自动设置为null=True,blank=True,这是因为验证是在内部表单上完成的。因此,如果我们点击更改表单上的保存按钮,我们会看到以下内容
如果我们提供有效数据的更改,您在检索数据时应得到一个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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b63aa33c03e3cb1082ce74d680c440c726025bbe4e65d24c2f828645e8643fb1 |
|
MD5 | 83941ed2f92ff259b853424750628f56 |
|
BLAKE2b-256 | 88bd99ef29f54cc4898bf53c8b30cc147c3188c05af5a02b0d10e26a51c63b96 |