如何在django表单中实现加/减函数

ukxgm1gy  于 2022-11-19  发布在  Go
关注(0)|答案(2)|浏览(134)

我如何在django-form中实现这个?
2/3:2是物料的当前领料量,3是最大值
此表单不适用于模型,单击后将发送数据到redis服务器
那么,我如何在- n/N +下隐藏窗体

yyhrrdl8

yyhrrdl81#

在此我尝试解决您的要求

第1001章:我的models.py

class Demo(models.Model):
    name =models.CharField(max_length=200)
    total_img = models.IntegerField(default=0)
    photo = models.ImageField(upload_to = 'Images',blank=True,null=True)

第1001章:我的form.py

class DemoForm(forms.ModelForm):
    class Meta:
        model = Demo
        fields = "__all__"

以Html格式呈现表单

{% load static %}
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>
        
    </title>
</head>
<body >
  
    <p>{{form.name.label}}{{form.name}}</p>    
    <p>
         {{form.total_img.label}}
         <a style="background-color: #ffb3b3; padding: 5px; border: 1px solid black; cursor: pointer; " onclick="dec()">-</a>
         {{form.total_img}}
         <a style="background-color: #b3ffb3; padding: 5px; border: 1px solid black; cursor: pointer;" onclick="inc()">+</a>
    </p>
    <p>{{form.photo.label}}{{form.photo}}</p>   

<script>
function inc() {
    let number = document.querySelector('[name="total_img"]');
    if  (number.value > parseInt(2)){
        alert("You can increase up to 3")
    }
    else {
        number.value = parseInt(number.value) + 1;
        console.log(number.value);
    }
}

function dec() {
    let number = document.querySelector('[name="total_img"]');
    if (parseInt(number.value) > 1) {
        number.value = parseInt(number.value) - 1;
    }

    else {
        alert("You can decrease up to 1")
    }
}
    
</script>
</body>
</html>

输出变成这样

注意-这里我为handle +和-按钮编写了javascript。按钮的工作方式是指向数字输入的名称

rdrgkggo

rdrgkggo2#

考虑一下:django.forms import widgets, inlineformset_factory根据您的用例,这将是有价值的,但它取决于您如何定义您的代码。

相关问题