Django Param提供了ParamForm类,该类将param类转换为原生Django表单。
项目描述
Django Param
Django Param提供了ParamForm类,该类将param类转换为原生Django表单。
快速入门
将'colorfield', 'django_select2', 'django_param'和'django.forms'添加到您的INSTALLED_APPS设置中,如下所示
```python
INSTALLED_APPS = [
...
'colorfield',
'django_select2',
'django_param',
]
```
用法
# Specify your param class
class MyParam(param.Parameterized):
probability = param.Number(0.5, bounds=(0, 1), doc="Probability that...")
test_string = param.String(default="test string", doc="Your String")
my_param = MyParam()
# Initialize Django Form
form = ParamForm({'probability': 0.1, 'test_string': 'test_bound'}, param=my_param)
# Get data from request.POST
form = ParamForm(request.POST, param=my_param)
# To return param with values from request.POST
param = form.as_param()
在模板中使用表单,就像使用正常的Django表单一样
- 首先,您需要添加表单媒体,您可以在页面的head元素中包含
{{ form.media }}
。 - 要添加表单,只需使用
{{ form }}
支持的param参数
- 布尔值
- 颜色
- 日历日期
- 数据框
- 日期
- 文件选择器
- 列表选择器
- 量级
- 多文件选择器
- 数字元组
- 对象选择器
- 范围
- 选择器
- 字符串
- 元组
- XY坐标
自定义小部件
您还可以使用您自己的自定义小部件覆盖任何默认小部件。例如
widget_map = {
param.String:
lambda parameterized_object, parameter, name: forms.CharField(
initial=parameterized_object.inspect_value(name) or parameter.default,
widget=Textarea,
),
}
form = ParamForm(param=my_param, widget_map=widget_map)