Как реализовать функцию плюс/минус в формах django
как мне реализовать это в django-форме?
2/3: 2 - текущее количество выбранного товара, 3 - максимальное
Эта форма не работает с моделью, она будет отправлять данные после клика на сервер redis
.
Итак, как я могу скрыть форму под - n/N +
Здесь я попытался решить ваше требование
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>
Выходные данные будут выглядеть следующим образом
NOTE - Здесь я написал javascript для обработки + и - кнопок.Кнопки работают с именем таргетинга ввода Number
Рассмотрите:
django.forms import widgets, inlineformset_factory
Это было бы ценно, исходя из вашего случая использования, но это зависит от того, как вы определяете свой код.