Ich habe folgendes Modell:in einer Django Form, die Modelform verwendet
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,
)
und ich habe das folgende Formular, die dieses Modell verwendet:
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')
)
Das Problem ist, dass self.helper.label_class = 'col-xs-9'
self.helper.field_class = 'col-xs-3'
und keine Wirkung hat, und ich möchte die CSS-Klasse eines bestimmten Elements einzustellen, zB message
oder amount
und
Die HTML Ich erhalte ist:
<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>
Was ich will ist die Klassen für das Label Element und das Eingangselement für jedes Element besonders ändern. Ich habe keine Ahnung, wie das zu tun. Kann mir jemand helfen, dieses Problem zu lösen?
Haben Sie Javascript in Betracht gezogen? Oder kommt das nicht in Frage? –
@almostabeginner, ja, ich habe über JS gedacht, aber ich würde gerne wissen, ob Sie es direkt in der django Form tun können, oder mit dem 'self.helper' Instanzvariable. – lmiguelvargasf