0

我写了一个这样的表单域

//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'))

所有的作品,但我重复自己,我有更多的这些领域我想写一次。

任何想法?

4

1 回答 1

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 上的可读性较差,并且不会特别为您节省很多时间。

于 2013-03-14T13:49:58.187 回答