AttributeError at /invoice/add_invoice/ Объект 'int' не имеет атрибута '_meta' при использовании in_bulk
Я хочу преобразовать экземпляры модели в объект JSON и затем передать его в HTML-файл. Однако в этой строке я получаю ошибку AttributeError:
data = serializers.serialize("json", Inventory.objects.in_bulk())
Полная views.py
:
def add_invoice(request):
form = InvoiceForm(request.POST or None)
data = serializers.serialize("json", Inventory.objects.in_bulk())
total_invoices = Invoice.objects.count()
queryset = Invoice.objects.order_by('-invoice_date')[:6]
if form.is_valid():
form.save()
messages.success(request, 'Successfully Saved')
return redirect('/invoice/list_invoice')
context = {
"form": form,
"title": "New Invoice",
"total_invoices": total_invoices,
"queryset": queryset,
"data": data,
}
return render(request, "entry.html", context)
Код Javascript:
{{ data|json_script:"hello-data" }}
<script type="text/javascript">
const data = JSON.parse(document.getElementById('hello-data').textContent);
document.getElementById('id_line_one').onchange = function(event){
document.getElementById('id_line_one_unit_price').value = data[event.target.value].fields.amount;
};
</script>
models.py
:
class Inventory(models.Model):
product_number = models.IntegerField(primary_key=True)
product = models.TextField(max_length=3000, default='', blank=True, null=True)
title = models.CharField('Title', max_length=120, default='', blank=True, unique=True)
amount = models.IntegerField('Unit Price', default=0, blank=True, null=True)
def __str__(self):
return self.title
Как я могу передать этот JSON объект и присвоить значение суммы текстовому полю в соответствии с объектом, выбранным в выпадающем списке? Спасибо
Строка в вашем представлении должна быть такой, как я думаю.
data = serializers.serialize("json", Inventory.objects.all())