use*_*736 2 python django django-forms
我正在尝试根据存储在数据库中的字段及其定义动态构建表单.在我的数据库中,我已经定义了1个带有一些标签的复选框和带有一些标签的1个文本域.
如何在数据库中的数据中动态构建表单?
谢谢
Django 在根据模型定义自动生成表单方面做得非常出色。
第一步可能是创建一个镜像现有数据库的 Django 模型。
关于复选框/文本字段的内容:
Django 在字段和小部件之间有很大的分离。您可能有一个存储数字的IntegerField,但您可以在用户想要编辑该数字时更改向用户显示的小部件。在某些情况下,您可能有一个输入框,在其他情况下可能有一个文本区域,或者可能有一个下拉列表。该字段将处理诸如类型转换和验证之类的细节,小部件确定表单字段的外观。
某些字段类型具有与其关联的默认小部件,但您可以覆盖它们。
另请注意,表单字段和模型字段之间存在差异。
要动态执行此操作,可以动态地将项目添加到 self.fields SortedDict 中。IE:
from django.forms.forms import Form
from django.forms.fields import CharField
class FunkyForm(Form):
def __init__(self, *args, **kwargs):
super(FunkyForm, self).__init__(*args, **kwargs)
for item in range(5):
self.fields['test_field_%s' % item] = CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
将为您提供一个用 5 个动态生成的 CharField 实例化的表单类。
| 归档时间: |
|
| 查看次数: |
5622 次 |
| 最近记录: |