Не работает нажатие кнопки в веб-приложении Python & Django
У меня было веб-приложение, разработанное другим человеком, который больше не хочет помогать с ошибками. У меня есть некоторый опыт, но, по-видимому, недостаточный для решения этой проблемы.
В веб-приложении есть кнопка, при нажатии на которую ничего не происходит. Она должна сохранять информацию о пользователе в базе данных. Я не понимаю, как событие щелчка связано с возможным файлом views.py.
В моем templates/add-inventory.html я вижу:
<a href="{% url 'crm:inventory' %}" class="btn btn-light rounded-pill me-1"> Cancel </a>
 <button type="submit" class="btn btn-success rounded-pill"> Save </button>
Кнопка сохранения ничего не делает. Я вижу в файле views.py:
@login_required(login_url='crm:login')
@permission_required("crm.add_inventory", raise_exception=True)
def addInventory(request):
    form = InventoryForm()
    staff = User.objects.all().order_by('first_name')
    vendor_form = VendorForm()
    
    if request.method == 'POST':
        form = InventoryForm(request.POST)
        if form.is_valid():
            inventory_instance = form.save()
            
            if not request.POST.get('vendor'):
                vendor_form = VendorForm(request.POST)
                
                if vendor_form.is_valid():
                    vendor = vendor_form.save(commit=False)
                    vendor.added_by = request.user
                    vendor.save()
                    inventory_instance.vendor = vendor
                    inventory_instance.save()
                
            stocks = request.POST.getlist('stock')
            for i in range(len(staff)):
                if int(stocks[i]) > 0:
                    InventoryStock.objects.create(
                        inventory = inventory_instance,
                        user = staff[i],
                        stock = stocks[i]
                    )
                    
            messages.success(request, 'Item added successfully')
            return redirect('crm:inventory')
Как кнопка вызывает код в файле views.py? Любая помощь будет принята с благодарностью. Я загрузил все файлы локально и использую VS Code для отладки, но не достиг никакого прогресса.
Я добавил name=addInventory" в файл add-inventory.html, как показано ниже. Это ничего не дало.
<a href="{% url 'crm:inventory' %}" class="btn btn-light rounded-pill me-1"> Cancel </a>
 <button type="submit" class="btn btn-success rounded-pill" name="AddInventory"> Save </button>
Ниже приведен код из файла urls.py, как и просили. Надеюсь, это та информация, которая вам была нужна.
 path('inventory', inventory, name='inventory'),
 path('inventory/add', addInventory, name='add-inventory'),   
 path('inventory/update/<int:pk>', updateInventory, name='update-inventory'),
 path('inventory/delete/<int:pk>', deleteInventory, name='delete-inventory')
                
Полагая, что вы уже указали app_name = "crm" в вашем urls.py, вам нужно просто изменить url вашей кнопки на {% url 'crm:add-inventory' %} имя, которое вы указали в вашем urls.py файле.
 Если вы уже настроили VSCode на отладку должным образом, вы должны иметь возможность поставить точки останова в представлении inventory и в представлении addInventory, вы заметите, что вызываете первую, поскольку ее имя - inventory
Более общее объяснение
Вот как работает django.
- Первый пользователь нажимает на 
button / link - Это 
button or linkпост или запрос информации от конкретногоurl - Этот url mast соответствует одному из django 
urls.py - Это 
urlдолжно быть связано сviewвнутриviews.py, это представление является местом, где происходят реальные операции 
Проблема может быть
- точка разрыва в приведенной выше связке.
 
Или
- ошибка в представлении/коде django
 
Ответ :-
По данной информации мы видим только 1,3,4 шаги.
-  Мы не можем увидеть 
post formaction valueв приведенной информации по вопросу. 
Или
-  мы не видим 
javascript/jqueryкод для пользовательской формыpost/upload. 
Один из них - обязателен.
Так,
 выделите клапан действия post-формы и проверьте, совпадает ли он с клапаном из django urls.py.
Или
Чек в пользовательской форме submit js/jquery код для валидного url.