利用checkbox的到值,并且存到数据库修改的话要显示之前选择的
在前台当然是利用checkbox来得到复选框的
语言:
{% for language in languages%}
<input type="checkbox" name="language" value=‘{{ language.id }}‘ >{{ language.name }}
{% endfor %}
而复选框如果是已经选的在前台就展示的是选择的,那么input的属性就应该有checked
那么就可以通过在前台if来判断language.id跟已经选择的id做比较,如果一样就有checked
在后台取值:
language = request.POST.getlist(‘language‘)
然后保存到UserInfo里,此时UserInfo的language字段就是一个list
imginfo = UserInfo.objects.get(user=id)
lansid = []
for i in eval(imginfo.language):
lansid.append(int(i))
languages = Language.objects.all()
上边就是将UserInfo的language取出来,因为他的字段是这样的“[u‘1‘,u‘2‘]”
所以用eval(imginfo.language),将他搞成[u‘1‘,u‘2‘]
然后再前台的{{language.id}}是一个int值
所以我就用lansid.append(int(i))对他的值进行转换
又回到前台,此时的代码变成:
语言:
{% for language in languages%}
<input type="checkbox" name="language" value=‘{{ language.id }}‘
{% for lan in lansid%}
{% ifequal lan language.id %} #用ifequal判断值是否相等
checked
{%endifequal%}
{%endfor%}
>{{ language.name }}
{% endfor %}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。