Django:定义自己的表单字段

时间:2013-03-14 13:41:39

标签: django django-forms django-models

我写了一个像这样的表单字段

// forms.py

hostAdress = forms.CharField(required = False,
                             label = ('#content'),
                             initial = ('#content'))
adminHostAdress = hostAdress
userHostAdress = hostAdress

它显示正确,但是当想要保存表单时,我带着填充的字段返回到表单,没有其他任何事情发生。

我写的时候

adminHostAdress = forms.CharField(required = False,
                                  label = ('#content'),
                                  initial = ('#content'))
userHostAdress = forms.CharField(required = False,
                                 label = ('#content'),
                                 initial = ('#content'))

一切正常,但我重复自己,我想要写一次这些领域。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的第一个示例只是将相同的CharField分配给两个单独的表单变量,因此基本上它们共享Django表单字段的相同实例。如果您愿意,可以尝试以下内容:

class MyForm(forms.Forms):
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        for field_name in ["adminHostAdress", "userHostAdress", ...]:
            self.fields[field_name] = forms.CharField(
                required = False,
                label = ('#content'),
                initial = ('#content'))

但这是不太可读的IMO,并没有特别节省你的时间。