2013-05-28 71 views
2

我有一個Django的形式,看起來像這樣的工作:如何添加動態屬性的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,如果可能的話。

謝謝!

+0

您是不是使用'ModelForm'或不在'__init__'方法中出於某種原因?爲什麼它應該在_template_上? –

+0

我不知道我可以使用init選項,我正在探索atm。 ModelForms似乎不可行,因爲表單只會修改其他更大模型中的一個字段 – khalid13

回答

4

您可以使用init和self.fields字典動態修改您的表單。類似這樣的:

class UploadImageForm(forms.Form): 

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

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

我正在嘗試此atm,但它看起來像自動填充的字段正在返回「This Field is required」錯誤。你知道這是爲什麼嗎? – khalid13

+0

這工作,謝謝。 – khalid13