建筑学动态形态

2024-04-28 18:22:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试基于存储在数据库中的字段及其定义动态构建表单。在我的数据库中,我定义了一个带有标签的复选框和一个带有标签的文本字段。

如何根据数据库中的数据在视图中动态构建窗体?

谢谢


Tags: 数据文本视图数据库表单定义动态标签
2条回答

以下是我在EuroDjangoCon做的一次演讲的幻灯片,内容正是这样的:http://www.slideshare.net/kingkilr/forms-getting-your-moneys-worth

Django在从model definitions.自动生成表单方面做得很好

第一步可能是创建一个Django模型来镜像现有的数据库。

关于复选框/textfield的内容:

Django在字段小部件之间有很好的分离。您可能有一个存储数字的IntegerField,但是您可以改变当用户想要编辑数字时显示给用户的小部件。在某些情况下,您可能有一个输入框,在其他情况下有一个文本区域,或者可能有一个下拉列表。字段将处理类型转换和验证等细节,小部件确定表单字段的外观。

某些字段类型具有与之关联的默认小部件,但您可以覆盖它们。

另外,请注意,表单字段模型字段之间存在差异。


要动态地执行此操作,可以动态地向self.fields SortedDict添加项。一、 E:

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)

将为您提供一个用5个动态生成的字符字段实例化的窗体类。

相关问题 更多 >