[英]Django-template. How to create list of values for specific key for each element in QuerySet
我通过上下文将所有对象发送到 html:
视图.py
def books(request):
all_books = Book.objects.all()
context = {'books': all_books}
return render(request, 'books/books.html', context)
模型.py
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=30)
category = models.IntegerField()
offset_pages = models.IntegerField()
read_pages = models.IntegerField()
total_pages = models.IntegerField()
book_path = models.CharField(max_length=200, default='')
status = models.BooleanField(default=False)
def __str__(self):
return f'{self.category} | {self.title} | {self.author}'
这是否可以获取 django 模板中特定键的所有值的列表?
我想要一个包含 QuerySet 中每个元素的所有 read_pages 值的列表。
我相信我也可以通过上下文来做到这一点,但似乎必须有更好的方法。
我需要一个列表,因为我想稍后将它发送到 chart.js。
如果你想在 Javascript 中使用它,最好的办法是在视图中将查询集转换为 JSON:
from django.core import serializers
def books(request):
all_books = Book.objects.all()
serialized_books = serializers.serialize('json', [ all_books, ])
context = {'books': all_books, 'books_json': serialized_books}
return render(request, 'books/books.html', context)
然后你可以将serialized_books
传递给 Django 模板中的 Javascript,如下所示:
<script>
var books_serialized='{{ books_json | safe }}';
</script>
然后,您可以在 Javascript 文件中获取对象并获取任何属性:
let books = JSON.parse(books_serialized)
Object.keys(books[0]).forEach(function(key) {
if(key==="fields"){
console.log(books[key]["read_pages"]);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.