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ものを 2 つの別々のフォーム変数に割り当てるだけなので、基本的にそれらは 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 に答える