Django Formfield公司

django-formfield的Python项目详细描述


BUILD

Version:0.4
Docs:https://django-formfield.readthedocs.org/en/latest/
Download:http://pypi.python.org/pypi/django-formfield/
Source: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 form field是一个表单字段,它接受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=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级别,我们可以提供meta_信息 任何有效的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!'}

注意

如果表单域通过更改表单(如管理员)可用,则 意外值将被窗体返回的内容覆盖。例如, ^上面的{}只需要agesex,所以上面的值都不是 ('is'、'some'和'here')匹配,并将在表单提交时被重写。

但是,我们可以将字段隐藏或只读,并使用它来提供任何 有效的json,但它并不是这个应用的真正内涵。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JTable无法向新创建的列添加值   java如何调整JEditorPane中编辑区域的大小?   Java通过反射确定未知数组中的数组大小   java Intellij Idea有时无法按其预期的方式构建应用程序   java Swing GUI带有IntelliJ错误“contentPane不能设置为null”从终端编译时   如何将这些通用方法调用从C#转换为Java   在null上找不到java属性或字段“index”   从Java HashMap获取整数值时是否需要调用intValue()方法?   java Android谷歌地图获取相机中的图像块   unix无法捕获JAVA中“who m”命令的输出   java,同时将邮件发送到“收件人”标题“我”中的多个收件人   在java中向链表添加未知数量的节点   无法为Heroku上的discord bot设置java端口   java使用Apache HttpClient进行选项请求   与元素类型“ApplicationName”关联的属性“Application Version”需要java Open quote   Android Studio Java中的两个变量求和