在前台當然是利用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 %}