Django - 初始化CheckboxInput [英] Django - initial checked CheckboxInput

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

问题描述

我希望我的CheckboxInput默认被检查:



我的模型:

  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' :
}
def __init __(self,* args,** kwargs):
self.valbata = kwargs.pop(arg_bata)
超级(presentationForm,self).__ init __(* args,** kwargs)
self.fields ['batata']。initial = True

我的观点:

  def theview(request) 
form = presentationForm(arg_bata =Azerty)
return render(request,le_site / page-batata.html,locals())
pre>

我的模板:

  < div id =mod> 
{%load bootstrap%}
< form method =POSTid =formModificationFic>
{%csrf_token%}
{{form.batata | bootstrap}}
...
< div class =col-md-offset-4 col-md- 3\" >
< input type =submitid =le_boutonvalue =Confirmer>
< / div>
< / form>
< / div>

我的JS:

  function envoie_post(){
var batataRep = document.getElementById(batata)。
alert(batataRep:+ batataRep);
$ .post(http:// localhost:8000 / page-batata,batataRep:batataRep});
}

$(document).ready(function(){
$(#formModificationFic)。submit(function(){
envoie_post();
return false;
});
});

但是在我的页面中,checbkoxInputbatata没有被检查...
我认为JS没有效果

解决方案

'选中'属性添加到你的 presentationForm 中的复选框输入字段小部件。所以你的代码变成:

  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


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天全站免登陆