一个Django形式I具有以下模型:更改CSS类的元素的在使用的ModelForm
class PledgeSettings(models.Model):
message = models.CharField(max_length=200, blank=True, null=True)
amount = MoneyField(
max_digits=6,
decimal_places=2,
default_currency='CAD',
blank=True,
null=True,
)
,我必须使用该模型的形式如下:
class PledgeSettingsForm(forms.ModelForm):
class Meta:
model = PledgeSettings
def __init__(self, *args, **kwargs):
super(PledgeSettingsForm, self).__init__(*args, **kwargs)
self.fields['message'].widget.attrs = {
'placeholder': _('Everytime I eat a doughnut'),
}
self.fields['message'].label = False
self.fields['amount'].label = _('I pledge to donate $')
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-xs-9'
self.helper.field_class = 'col-xs-3'
self.helper.layout = Layout(
'message',
'amount'
)
self.helper.layout.append(
Submit('save', 'Save', css_class='save_button')
)
问题是self.helper.label_class = 'col-xs-9'
和self.helper.field_class = 'col-xs-3'
没有效果,我想设置特定元素的css类,例如message
或amount
和
我得到的HTML是:
<form class="form-horizontal" method="post"> <input type="hidden" ...>
<div id="div_id_message" class="control-group">
<div class="controls">
<input type="text" name="message" value="I smoke a cigarette" placeholder="Some text" class="textinput textInput" id="id_message">
</div>
</div>
<div id="div_id_amount" class="control-group">
<label for="id_amount_0" class="control-label ">
Some text
</label>
<div class="controls">
<input type="number" name="amount_0" value="1.00" step="0.01" class="col-xs-3" id="id_amount_0">
<select name="amount_1" class="col-xs-3" id="id_amount_1">
<option value="CAD" selected="">Canadian Dollar</option>
</div>
</div>
</form>
我想改变的是对于标签元素,每个元素特别是输入元素的类。 我不知道该怎么做。任何人都可以帮我解决这个问题吗?
你有没有考虑使用Javascript?或者这是不可能的? –
@almostabeginner,是的,我想过JS,但我想知道你是否可以直接在django窗体中使用它或使用'self.helper'实例变量。 – lmiguelvargasf