通过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参数且值与表达式匹配,则可以使用fieldmatchattribute获取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子级。使用django.core.validators.urlvidator将字符串验证为url

参数:

  • source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。

结果值:可选[str]

hexfield(*args,source:optional[str]=none,**kwargs)

Restcharfield儿童。验证字符串是否只有十六进制字符。

参数:

  • source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。

结果值:可选[str]

uuidfield(*args,source:optional[str]=none,**kwargs)

regexfield子级。验证字段是否为正确的uuid。

参数:

  • source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。

结果值:可选[str]

文件字段(*args,max_size:optional[int]=none,有效的_扩展名:optional[list[str]]=none,source:optional[str]=none,**kwargs)

包装django.forms.forms.filefield:

  • 修复初始值错误(filefield返回空字符串,忽略"initial"参数)
  • 添加vali验证参数

参数:

  • 最大大小:可选[int]-文件大小(字节)
  • 有效扩展名:可选[list[str]]-文件扩展名(不带.),有效
  • source:可选的[str]-要从中获取数据的属性的名称。默认为表单属性名。

结果值:可选[文件]

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

推荐PyPI第三方库


热门话题
java爬虫获取外部网站搜索结果   java Bluestack未连接到eclipse   java如何从ConstraintViolationException Hibernamte获取数据库字段名   HttpResponse HttpResponse=httpClient引发java运行时错误。执行(httpPost);   Jama中矩阵的java点积和叉积   java有什么方法可以唯一地识别可扩展设备吗?   java我需要用*来写我的名字,但我不断遇到一个错误,我对编码很陌生   java变量是在内部类中访问的。需要被宣布为最终决定。但我不想宣布最终结果   java如何缩短base64图像字符串,Android?   JavaSpringMVC:计划方法不自动触发   图形学习Java 2D API的好资源是什么?   如何在java中对方法进行排队   java JavaFX多行   java Selenium无法在[链接]上找到基于CSS元素的密码字段元素http://www.cartasi.it/gtwpages/index.jsp   Java中的equals()和hashCode()契约   软删除情况下的java Hibernate二级缓存   java为什么这段代码要两次调用这些方法?