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

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

я пытался дать ответ с формой модели Django

Mahammadhusain kadiwala 10.11.2022 13:26

Я обновил ответ, который я имею в виду: кнопка уменьшится до 1, а кнопка + увеличится до 3

Mahammadhusain kadiwala 10.11.2022 14:20
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
2
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

модели.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"]');
    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>

Вывод становится таким

ПРИМЕЧАНИЕ. Здесь я написал javascript для обработки кнопок + и -. кнопки работают, ориентируясь на имя ввода числа.

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

спасибо, что нашли время ответить на мой вопрос. к сожалению в виджетах ничего не нашел, но нашел простое решение в этом видео youtube.com/watch?v=XwM7oBc1i4M

w1cee 10.11.2022 12:08

Другие вопросы по теме