フォームにパラメーターを渡すにはどうすればよいですか?
someView()..
form = StylesForm(data_dict) # I also want to pass in site_id here.
class StylesForm(forms.Form):
# I want access to site_id here
フォームにパラメーターを渡すにはどうすればよいですか?
someView()..
form = StylesForm(data_dict) # I also want to pass in site_id here.
class StylesForm(forms.Form):
# I want access to site_id here
次のように、フォームの __init__ メソッドを定義する必要があります。
class StylesForm(forms.Form):
def __init__(self,*args,**kwargs):
self.site_id = kwargs.pop('site_id')
super(StylesForm,self).__init__(*args,**kwargs)
もちろん、オブジェクトが作成されるまで self.site_id にアクセスすることはできないため、次の行:
height = forms.CharField(widget=forms.TextInput(attrs={'size':site_id}))
意味がありません。フォームが作成された後、属性をウィジェットに追加する必要があります。次のようなことを試してください:
class StylesForm(forms.Form):
def __init__(self,*args,**kwargs):
self.site_id = kwargs.pop('site_id')
super(StylesForm,self).__init__(*args,**kwargs)
self.fields['height'].widget = forms.TextInput(attrs={'size':site_id})
height = forms.CharField()
(未検証)