Как реализовать функцию плюс/минус в формах django

как мне реализовать это в django-форме?
2/3: 2 - текущее количество выбранного товара, 3 - максимальное
Эта форма не работает с моделью, она будет отправлять данные после клика на сервер redis
. Итак, как я могу скрыть форму под - n/N +

enter image description here

Здесь я попытался решить ваше требование

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)

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"]');
        number.value = parseInt(number.value) + 1;
    }

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

</script>
</body>
</html>

Выходные данные будут выглядеть следующим образом

enter image description here

NOTE - Здесь я написал javascript для обработки + и - кнопок.Кнопки работают с именем таргетинга ввода Number

Рассмотрите: django.forms import widgets, inlineformset_factory Это было бы ценно, исходя из вашего случая использования, но это зависит от того, как вы определяете свой код.

Вернуться на верх