通过django.forms验证rest请求数据的扩展表单字段
django-rest-form-fields的Python项目详细描述
django rest form字段
通过django.forms验证rest请求数据的扩展表单字段。
要求
- python 2.7或python 3.4+
- django>;=1.7
- 皮兹
- jsonschema
- 键入
安装
通过pip安装:pip install django rest form字段
或通过setup.py:
python setup.py安装
用法
您可以使用标准的django表单,为它们添加新字段。
下面引用的所有*args
和**kwargs
字段将按原样传递给基本django构造函数。
示例:
fromdjangoimportformsfromdjango_rest_form_fieldsimportFileField,ArrayFieldclassMyForm(forms.Form):file_field=FileField(max_size=1024,valid_extensions=['valid_extensions'])array_field=ArrayField(min_items=1,max_items=10)
基本形式
自版本1.2.2以来,此库还包含基本表单类。 与库字段一起,它们提供了更改字段的源属性的能力。 要使用此功能,只需从baseform或basemodelform继承类:
fromdjango_rest_form_fields.formsimportBaseFormfromdjango_rest_form_fields.fieldsimportRestIntegerFieldclassMyForm(BaseForm):int_field=RestIntegerField(source='intField')f=MyForm({'intField':123})f.full_clean()print(f.cleaned_data['int_field'])# Outputs: 123
字段及其选项
restcharfield(*args,source:optional[str]=none,**kwargs)
包装django.forms.forms.charfield:
- 更改默认值-无,不是空字符串
- 修复初始值(charfield返回空字符串,忽略"initial"参数和无值)
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
regexfield(*args,regex:optional[str]=none,flags:int=0,source:optional[str]=none,**kwargs)
restcharfield子类,它使用regex(re.match函数)自动验证给定的字符串
如果指定了regex参数且值与表达式匹配,则可以使用fieldmatch
attribute获取matchobject
参数:
- regex:str-正则表达式字符串或使用
re.compile()
对象编译 - 标志:int-可选的验证标志
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
restchoicefield(*args,choices:optional[iterable[union[str,tuple[str]]]=无,source:optional[str]=无,**kwargs)
包装django.forms.forms.choiceField:
- 更改默认值-无,不是空字符串
- 修复初始值(choiceField返回空字符串,忽略"initial"参数和无值)
- 提供将"choices"设置为值的iterable而不是元组的iterable的机会
参数:
- 选项:可选[iterable[union[str,tuple[str]]]-此字段可以具有的值。 它可以是字符串的iterable或元组的iterable[内部名称:str,人类名称:str]。
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
restingerfield(*args,source:optional[str]=none,**kwargs)
restfloatfield(*args,source:optional[str]=none,**kwargs)
包装django.forms.forms.integerfield和django.forms.forms.floatfield,固定初始值(基本字段返回none,忽略"initial"参数和none值)
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[int/float]
阳性integerfield(*args,带_zero:bool=false,source:optional[str]=none,**kwargs)
idfield(*args,带0:bool=false,source:optional[str]=none,**kwargs)
RestIntegerField的子级,将值验证为正整数 参数:
- 对于_zero:bool-如果为false,0将导致验证错误
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:optionaL[int]
时间戳字段(*args,in_future:bool=true,source:optional[str]=none,**kwargs)
restfloatfield的子级。获取时间戳值,并将其转换为UTC格式的datetime.datetime
对象。
参数initial
可以是float或datetime.datetime
值。
参数:
- 在将来:bool-如果为false,则验证datetime小于
django.utils.timezone.now()
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[datetime.datetime]
datetimefield(*args,mask:str="%y-%m-%dt%h:%m:%s",source:optional[str]=none,**kwargs)
雷斯查菲尔德的孩子。将datetime字符串解析为datetime.datetime
值。
参数:
- mask:str-函数的模板
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[datetime.datetime]
monthfield(*args,mask:str="%y-%m",source:optional[str]=none,**kwargs)
DateTimeField的子级。将月字符串解析为datetime.date
值。
返回每月第一天的日期。
参数:
- mask:str-函数的模板
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[datetime.date]
TimeZoneField(*参数,来源:可选[str]=无,**kwargs)
雷斯查菲尔德的孩子。将字符串验证为Pytz时区名称之一。
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
日期单位字段(*参数,来源:可选[str]=无,**kwargs)
RestChoiceField的子级,验证值为[小时、天、周]之一
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
restbooleanfield(*args,source:optional[str]=none,**kwargs)
标准django.forms.forms.booleanfield
基于/django/forms/widgets.py
它不适合rest模型:required=true
+value=false
=>;validationerror
此文件修复了此问题,使您有机会发送False(是否必需):
- 无作为默认值
- 'false','0',''(忽略大小写)为false
- 其他所有内容都是用标准bool函数解析的
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
小写电子邮件字段(*args,source:optional[str]=none,**kwargs)
包装django.forms.forms.emailfield
- 将电子邮件字符串转换为小写
- 修复初始值错误(emailfield返回空字符串,忽略"initial"参数)
- 更改默认值-无,不是空字符串
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
colorfield(*args,source:optional[str]=none,**kwargs)
RestCharField的子级,正在验证颜色。 颜色应为六个十六进制字符。
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。理>
结果值:可选[str]
truncatedcharfield(*args,truncate_length:int=255,source:optional[str]=none,**kwargs)
restcharfield的子级,它截断给定值,保留第一个截断长度字符。
参数:
- 截断长度:可选[int]-如果没有,则作为restcharfield。if integer—要保留的字符数。
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[str]
jsonfield(*args,json_schema:optional[dict],source:optional[str]=none,**kwargs)
雷斯查菲尔德的孩子。验证,该值是dict、list或json编码的字符串。 如果字符串-解码。
参数:
- json_schema:可选的[dict]-用jsonschema包验证给定json的对象
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[任意]
arrayfield(*args,min_items:int=0,max_items:optional[int]=none,item_schema:optional[dict]=none,source:optional[str]=none,**kwargs)
杰斯菲尔德的孩子。验证数组。它可以用三种形式表示:
- 列出实例
- JSON编码数组
- 逗号分隔字符串
参数:
- min_items:int-验证数组中有多个或相等的项
- max_items:optional[int]-验证数组中的项数是否小于或等于项
- item_schema:optional[dict]-使用jsonschema包验证每个项的对象。
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[列出[任何]]
IDarrayField(*参数,来源:可选[str]=无,**kwargs)
ArrayField儿童。验证idField()的数组。
使用idField()清除每个数组元素。
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[list[int]]
idsetfield(*args,source:optional[str]=none,**kwargs)
伊达拉菲尔德的孩子。验证idField()的集合。
使用idField()清理每个元素。如果需要,从输入中删除重复的ID。
参数:
- source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。
结果值:可选[set[int]]
urlfield(*args,source:optional[str]=none,**kwargs)
regexfield子级。使用 参数: 结果值: Restcharfield儿童。验证字符串是否只有十六进制字符。 参数: 结果值: regexfield子级。验证字段是否为正确的uuid。 参数: 结果值: 包装django.forms.forms.filefield: 参数: 结果值:django.core.validators.urlvidator将字符串验证为url
可选[str]
hexfield(*args,source:optional[str]=none,**kwargs)
可选[str]
uuidfield(*args,source:optional[str]=none,**kwargs)
可选[str]
文件字段(*args,max_size:optional[int]=none,有效的_扩展名:optional[list[str]]=none,source:optional[str]=none,**kwargs)
可选[文件]
推荐PyPI第三方库