表单字段使csv或json文件更容易映射到您自己的模型

django-mapped-fields的Python项目详细描述


django mapped fields
========


一组表单字段,使接受带有变量(但需要)键的半结构化数据变得更容易。现在,这些数据可以直接映射到您自己的django模型和具有规范化字段名的表单。

创建
字段时,只需导入它并设置它的“字段名”。

``python
from django import forms

from mapped\fields import fields




class contact csv(forms.form):
“从csv文件导入联系人。”

first\name=fields.charfield(
max\length=50,字段名=('firstname','forename'))
姓氏=字段.charfield(
最大长度=50,字段名=('last name','surname'))
电话号码=字段.charfield(
最大长度=30,字段名=('telephone',“移动”)



def map-u from_csv():
csv-files=[
{
‘名字’:'anne',
‘姓氏’:'other',
‘移动’:'555-1234',
},
‘名字’:'david',
‘法定姓氏’:'anderson',
‘电话’:'555-2345',
},
]



有效的电子表格=contactcsv(数据=csvu文件[0])
有效的电子表格。有效的电子表格。有效的电子表格。被清理的电子表格数据[“名字”]=='安妮'
有效的电子表格。被清理的电子表格数据[“姓姓氏”]=='其他'
有效的电子表格。被清理的电子表格数据[“电话号码”]=='555-1234'='555-1234'='555-1234'=='555-1234'==



无效的电子表格=contactcsv(数据=csv)有效的电子表格。有效的电子表格。有效的电子表格。有效的电子文件[1])
无效的_form.is_valid()==false;合法姓氏不在映射字段中
````

将使用字段名的第一个匹配项:

``来自映射字段的python




”“演示多个字段名。
”“
name=fields.charfield(
max-length=100,field-names=('name','contactname'))


={
“contactname”:“james”,
“name”:“anderson”,
}


form=contactform(data=data)
form.is_valid()==true
form.cleaned_data['name']=“name”name列在字段名称中的第一位
````

如果导入的文件格式不一致,并且如果“最好”的标题不在那里,那么您需要回退。当前支持的字段有:

-`mapped\u fields.fields.booleanfield`
-`mapped\u fields.fields.nullbooleanfield`
-`mapped\u fields.fields.charfield`
-`mapped\u fields.fields.datefields`
-`mapped\u fields.fields.datetimefields`
-`mapped\fields.decimalfields`
-`mapped\u fields.fields.floatfield`
-`映射字段.字段.整数字段`
-`mapped字段.字段.emailfield`
-`mapped字段.字段.slugfield`
-`mapped字段.字段.urlfield`



但是,使用一个强制的额外参数“field\u names”--要从源数据映射到字段的字段名的列表或元组。



testing
----


要测试,请在virtualenv中安装需求,然后在test\u项目中运行test

```
virtualenv
。venv/bin/activate
pip install-r requirements.txt
python setup.py install

./manage.py test
```

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

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null