动态Django表单不仅有输入

2024-09-29 23:20:35 发布

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

我已经很久没有使用Django了,我有一个动态的Django表单:

   class GoodsAddPropertyForm(forms.Form):
     def __init__(self, groups_and_properties, *args, **kwargs):
      super(GoodsAddPropertyForm, self).__init__(*args, **kwargs)
      for group_and_properties in groups_and_properties:
       self.fields[group_and_properties.name] = CharField(label = group_and_properties)
       for property in group_and_properties.properties:
           if property.type == 'boolean':
               self.fields[property.name] = forms.BooleanField(label = property.name, required=False)
           elif property.type == 'float':
               self.fields[property.name] = forms.FloatField(label = property.name)

如何使self.fields[group_and_properties.name]=CharField(label = group_and_properties)成为一个没有输入元素的简单HTML文本?在


Tags: anddjangonameselffieldsinitgroupargs
2条回答

定义自定义小部件:

from django.utils.safestring import mark_safe

    class HTMLWidget(forms.widgets.Widget):
        def render(self, name, value, attrs=None):
            output = []
            output.append('<p>Hello world: %s</p>' % value)
            return mark_safe(u''.join(output))

将其指定为CharField小部件:

^{pr2}$

你应该看看窗体.多值字段以及窗体.MultiWidget. 但这并不好,所以你必须将它们子类化。在

相关问题 更多 >

    热门问题