首页 > 解决方案 > Django2.2 SQL-Server如何将复选框输入存储在数据库中

问题描述

我有 2 个复选框,我可以在 html 中检查它们,但我无法将它们发送到我的数据库,只有 id 增加但没有一个选中的复选框信息发送到数据库。

我的模型:

class Qskontrolle(models.Model):
    qsid = models.AutoField(db_column='QsID', primary_key=True)  
    mhd = models.BooleanField(db_column='MHD', blank=True, null=True)  
    etiketten = models.BooleanField(db_column='Etiketten', blank=True, null=True) 
    verpackungseinheiten = models.BooleanField(db_column='Verpackungseinheiten', blank=True, null=True)  

    class Meta:
        managed = False
        db_table = 'qskontrolle'

我的观点:

def qskontrolle_view(request):

    qskontrolle = QskontrolleForm()
    if request.method == 'POST':
        qskontrolle = QskontrolleForm(request.POST)
        if qskontrolle.is_valid():
            qskontrolle.save()
    context = {
        'object': qskontrolle
    }

    return render(request, "pages/qswareneingang.html", context)

我的表格:

class QskontrolleForm(ModelForm):
    class Meta:
        model = Qskontrolle
        fields = '__all__'

我的html:

<form action="" method="post">
      {% csrf_token %}
            <div class="card-group">
                <div class="col-md-4">
                    <div class="card">
                        <div class="card-header">
                            <h5 class="card-category">Wareneingangn QS-Prüfung</h5>
                            <h4 class="card-title"> Kontroll-Check</h4>
                        </div>
                        <div class="card-body">
                            <div class="table-full-width">
                            <table class="table">
                            <tr>
                                <td>
                                    <div class="form-check">
                                        <label class="form-check-label">
                                            <input type="checkbox" class="form-check-input" name="mhd">
                                            <span class="form-check-sign"></span>
                                        </label>
                                    </div>
                                </td>
                                <td class="text-left">MHD
                                </td>
                                <td class="td-actions text-right">
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <div class="form-check">
                                        <label class="form-check-label">
                                            <input class="form-check-input" type="checkbox" name="etiketten">
                                            <span class="form-check-sign"></span>
                                        </label>
                                    </div>
                                </td>
                                <td class="text-left">Etiketten
                                </td>
                                <td class="td-actions text-right">
                                </td>
                            </tr>
</form>

用户单击提交按钮后,我该怎么做才能成功地将选中或未选中的复选框传输到我的数据库?

标签: htmlsql-serverdjangocheckboxdjango-forms

解决方案


我想到了。

在我看来,我必须编辑我的代码如下:

def qskontrolle_view(request):

 mhd = 'mhd' in request.POST
 etiketten = 'etiketten' in request.POST
 verpackungseinheiten = 'verpackungseinheiten' in request.POST

 zuSpeichern = models.Qskontrolle(mhd=mhd, etiketten=etiketten,
                                verpackungseinheiten=verpackungseinheiten)

 zuSpeichern.save()

现在每个选中的复选框都将添加到我的数据库中


推荐阅读