как мне реализовать это в форме django?
2/3: 2 — текущее выбранное количество предметов, 3 — максимальное
Эта форма не работает с моделью, она будет отправлять данные после клика на сервер Redis
Итак, как я могу скрыть форму под - n/N +
Я обновил ответ, который я имею в виду: кнопка уменьшится до 1, а кнопка + увеличится до 3
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)
class DemoForm(forms.ModelForm):
class Meta:
model = Demo
fields = "__all__"
{% 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.info(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>
Подумайте о том, чтобы взглянуть на:
django.forms import widgets, inlineformset_factory
Это было бы полезно в зависимости от вашего варианта использования, но это зависит от того, как вы определяете свой код.
спасибо, что нашли время ответить на мой вопрос. к сожалению в виджетах ничего не нашел, но нашел простое решение в этом видео youtube.com/watch?v=XwM7oBc1i4M
я пытался дать ответ с формой модели Django