django 为未选中的复选框保存一个值

Posted

技术标签:

【中文标题】django 为未选中的复选框保存一个值【英文标题】:django save a value for unchecked checkbox 【发布时间】:2013-04-15 08:22:34 【问题描述】:

//我的模板//

  <tr>
      <td><input  type="text" name="language1" id="language1" /></td>
      <td><input  type="checkbox" name="read1" id="read1" value="yes" /></td>
      <td><input  type="checkbox" name="write1" id="write1" value="yes" /></td>
      <td><input  type="checkbox" name="speak1" id="speak1" value="yes" /></td>
    </tr>
    <tr>
      <td><input  type="text" name="language1" id="language1" /></td>
      <td><input  type="checkbox" name="read1" id="read1" value="yes" /></td>
      <td><input  type="checkbox" name="write1" id="write1" value="yes" /></td>
      <td><input  type="checkbox" name="speak1" id="speak1" value="yes" /></td>
    </tr>

如果选中复选框,我想将 yes 保存到我的数据库中,

如果未选中该复选框,我想将 no 保存到数据库中,..

怎么做?

编辑

def edit_other_info(request):
    if request.method == "POST":

        user = request.POST.get('user_id')

        language1 = request.POST.get('language1')
        read1 = request.POST.get('read1')
        write1 = request.POST.get('write1')
        speak1 = request.POST.get('speak1')

        language2 = request.POST.get('language2')
        read2 = request.POST.get('read2')
        write2 = request.POST.get('write2')
        speak2 = request.POST.get('speak2')
        p=language(user_id=user,language1=language1,read1=read1,write1=write1,
        speak1=speak1,language2=language2,read2=read2,write2=write2,speak2=speak2)
        p.save()

        return HttpResponseRedirect('/accounts/Profile/')
    else:

        details1 = language.objects.filter(user_id=request.user.id)
        return render_to_response('registration/language.html', "details":details, "details1":details1, context_instance=RequestContext(request))

提前谢谢..

【问题讨论】:

你已经写过一些 Python 代码了吗?如果是这样,我也很乐意看到! 【参考方案1】:

如果您为所有复选框提供一个通用名称,则可以使用

检索该值
options = request.POST.getlist('name')

如果没有检查,则返回一个空列表。

【讨论】:

【参考方案2】:

测试复选框 id 是否在 post 参数中,如下所示:

def myview(request):
   if request.method == 'POST':
      read1_val = "read1" in request.POST
      MyModel(read1=read1_val).save()

如果它在那里,那就是“是”。如果它不在那里,那就是“不”。

更多here、here和here

【讨论】:

以上是关于django 为未选中的复选框保存一个值的主要内容,如果未能解决你的问题,请参考以下文章

当用户使用角度选中或取消选中复选框时,向用户显示警报消息

基于element的checkbox实例:复选框组,选中之后,保存选中项value值,显示label

Ionic Js四:复选框

如何通过关系将复选框值保存到 django 中的 ManyToManyField?

确保从角度 ag-grid 中的多个复选框中选择了至少一个复选框

如果选中复选框,则 Laravel 存储值