Django 如何从混合在一起的 Modelform 和静态表单域中检索 post 数据

Django how to retrieve post data from Modelform and static formfields mixed together

我正在使用 Django Modelform 与静态表单字段混合生成一个 HTML 表单,如下所示:

Models.py:

class example(models.Model):
    value_1 = models.PositiveIntegerField()
    value_2 = models.PositiveIntegerField(unique=True)
    value_3 = models.PositiveIntegerField()
    value_4 = models.CharField(max_length=600)
    value_5 = models.CharField(max_length=600)
    label_1 = models.CharField(max_length=3)
    label_2 = models.CharField(max_length=3)
    label_3 = models.CharField(max_length=3)

    def __str__(self):
        return self.name

class ExampleForm(ModelForm):
    class Meta:
        model = example
        fields = '__all__'
        exclude = ['label_1','label_2','label_3']

模板 (HTML):

<form method="post" action="" enctype="multipart/form-data">

    <!-- Start static form fields -->
        <input type="checkbox" checked="checked" name ="label_1" value="blabla">
        <input type="checkbox" checked="checked" name ="label_2" value="blabla">
        <input type="checkbox" checked="checked" name ="label_3" value="blabla">
    <!-- End static form fields -->

    <!-- Start Modelform fields -->
        {% for field in form %}
            <div class="form-group form-group-default required">
            {{ field.label_tag }}
            {{ field|addcss:'form-control' }}
            <span class="text-danger">{{ field.errors }}</span>
            </div>
        {% empty %}
            <h3 class="text-warning">Database lookup failed.</h3>
        {% endfor %}
    <!-- End Modelform fields -->

    <button class="btn btn-complete btn-lg" type="submit"><i class="fa fa-save"></i></button>
</form>

HTML 表单与静态和动态表单字段完美显示。我可以请求表单值并像这样查看它们:

form = ExampleForm(request.POST)
return HttpResponse(form)

问题:

当我使用上述技术请求 POST 数据时,我只收到来自 Modelform(动态字段)的 post 数据,而不是来自静态字段的数据!

我发现我可以通过这种方式从静态字段请求 posted 值:

label_1 = request.POST.get("label_1")
return HttpResponse(label_1)

以上代码将给我 posted 静态复选框的值。但是,现在我必须收集所有静态字段,我想一次捕获所有 posted 数据,然后进一步处理它。

现在我的问题是,当我在 Django 中请求它们时,我怎么可能没有得到所有的 post 值?如何使用其中的所有 post 数据创建 1 个变量,包括模型值和静态表单字段?

希望我的问题很清楚,谢谢大家! :)

我相信你可能想仔细看看这一行:

    exclude = ['label_1','label_2','label_3']