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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM