如何向django表单添加动态属性

时间:2013-05-28 22:42:03

标签: django django-forms django-templates

我正在使用看起来像这样的django表单:

class UploadImageForm(forms.Form):
    image = forms.ImageField()
    image.widget.attrs["onchange"]="this.form.submit();"
    stream_id = forms.CharField(max_length=100)
    stream_id.widget.attrs["style"]="display:none;"

对于stream_id字段,我想根据我在数据库中的相关模型的相应字段预填充值。如何修改我的模板代码以添加一个可以预先填充它的属性?

如果可能,我想避免使用JS。

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用 init 和self.fields dict动态修改表单。像这样:

class UploadImageForm(forms.Form):

    def __init__(self, something=None, *args, **kwargs):

        super(UploadImageForm, self).__init__(*args, **kwargs)
        self.fields['stream_id'] = something