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中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?