利用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 %}

利用checkbox的到值,并且存到数据库修改的话要显示之前选择的,布布扣,bubuko.com

利用checkbox的到值,并且存到数据库修改的话要显示之前选择的

上一篇:MySQL数据库查询


下一篇:mysql简单sql命令