Я пытаюсь построить систему счетов-фактур, я поставил все модели и представления. Проблема, с которой я сталкиваюсь, заключается в том, что при выборе варианта из раскрывающегося списка я хочу, чтобы он извлекал все поля этого продукта из базы данных без перезагрузки , а также я хочу этот же шаг в следующей строке с другим продуктом. [Views.py] [1] [1]: https://i.stack.imgur.com/bVQhF.png
Счет. html
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<meta charset="UTF-8">
<title>Entry</title>
</head>
<body>
<div class="">
<select name="" id="select_path"
ONCHANGE="location = this.options[this.selectedIndex].value;">
{% for product in Products %}
<option value="{% url 'book' product.id %}">{{ product.Name }}
</option>
{% endfor %}
</select>
{{productInfo.Name}}
</div>
</body>
</html>
Views.py
from django.http import HttpResponse,Http404,HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from .models import Product
# Create your views here.
def index(request):
context={
'Products':Product.objects.all(),
}
return render(request,'invoices/index.html', context)
def query(request):
context={
'Products':Product.objects.all(),
}
return render(request,'invoices/invoice.html',context)
def book(request,product_id):
context={
'Products':Product.objects.all(),
'productInfo':Product.objects.get(pk=product_id)
}
return render(request,'invoices/invoice.html',context)
URL
from django.urls import path
from . import views
urlpatterns =[
path('',views.index,name="invoice"),
path('invoice/',views.query,name='detail'),
path('<int:product_id>/book',views.book,name='book')
]
Модели
from django.db import models
# Create your models here.
class Product(models.Model):
id = models.AutoField(primary_key=True)
Name=models.CharField(max_length=50)
HSN_code= models.CharField(max_length=15,unique=True)
Rate=models.DecimalField(max_digits=11,decimal_places=2)
def __str__(self):
return f" {self.id} {self.Name} {self.HSN_code} {self.Rate}"