问题
I want my CheckboxInput was checked by default :
My models :
class Sub(models.Model):
user = models.OneToOneField(User)
batata = models.BooleanField(default=False)
class presentationForm(forms.ModelForm):
class Meta :
model = Sub
widgets = {
'batata': forms.CheckboxInput(attrs={'id':'batata'}),
}
def __init__(self, *args, **kwargs):
self.valbata = kwargs.pop("arg_bata")
super(presentationForm, self).__init__(*args, **kwargs)
self.fields['batata'].initial = True
My view :
def theview(request):
form = presentationForm(arg_bata="Azerty")
return render(request,"le_site/page-batata.html",locals())
My template :
<div id="mod">
{% load bootstrap %}
<form method="POST" id="formModificationFic">
{% csrf_token %}
{{ form.batata|bootstrap }}
...
<div class="col-md-offset-4 col-md-3">
<input type="submit" id="le_bouton" value="Confirmer">
</div>
</form>
</div>
My JS :
function envoie_post(){
var batataRep = document.getElementById("batata").checked;
alert("batataRep : "+batataRep);
$.post("http://localhost:8000/page-batata", "batataRep":batataRep});
}
$(document).ready(function() {
$("#formModificationFic").submit(function() {
envoie_post();
return false;
});
});
But in my page, the checbkoxInput "batata" isn't checked... And I think the JS hasn't effects
回答1:
Add 'checked' attribute to your Checkbox Input field widget in presentationForm. So that your code becomes :
class presentationForm(forms.ModelForm):
class Meta :
model = Sub
widgets = {
'batata': forms.CheckboxInput(attrs={'id':'batata', 'checked' : ''}),
}
def __init__(self, *args, **kwargs):
self.valbata = kwargs.pop("arg_bata")
super(presentationForm, self).__init__(*args, **kwargs)
self.fields['batata'].initial = True
来源:https://stackoverflow.com/questions/31099252/django-initial-checked-checkboxinput