Django - 初始选中 CheckboxInput [英] Django - initial checked CheckboxInput

查看:25
本文介绍了Django - 初始选中 CheckboxInput的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望我的 CheckboxInput 被默认选中:

我的模型:

class Sub(models.Model):用户 = 模型.OneToOneField(用户)batata = models.BooleanField(默认=假)类presentationForm(forms.ModelForm):元类:模型 = 子小部件 = {'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

我的观点:

定义视图(请求):form =presentationForm(arg_bata="Azerty")返回渲染(请求,le_site/page-batata.html",locals())

我的模板:

{% 加载引导程序 %}<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">

</表单>

我的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();返回假;});});

但是在我的页面中,没有检查 checbkoxInput "batata"...而且我认为JS没有效果

解决方案

'checked' 属性添加到 presentationForm 中的 Checkbox Input field 小部件>.这样你的代码就变成了:

classpresentationForm(forms.ModelForm):元类:模型 = 子小部件 = {'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

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

解决方案

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

这篇关于Django - 初始选中 CheckboxInput的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆