queryset转字典
时间: 2023-11-06 13:12:09 浏览: 150
在 Django 中,可以使用 `values()` 方法将 QuerySet 对象转换为包含字典的列表。
例如,假设有一个 `Book` 模型:
```python
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
price = models.DecimalField(max_digits=6, decimal_places=2)
```
要将 `Book` 模型的 QuerySet 转换为字典列表,可以使用以下代码:
```python
books = Book.objects.all().values()
book_list = list(books)
```
这将返回一个包含每本书信息的字典列表。每个字典包含模型的字段名和相应的值。例如,字典可能看起来像这样:
```python
[
{'id': 1, 'title': 'Book One', 'author': 'Author One', 'price': '19.99'},
{'id': 2, 'title': 'Book Two', 'author': 'Author Two', 'price': '12.99'},
{'id': 3, 'title': 'Book Three', 'author': 'Author Three', 'price': '24.99'}
]
```
注意,使用 `values()` 方法返回的字典中不包含模型的方法和属性。如果需要这些额外的信息,可以使用 `values()` 方法的参数来指定要包含的字段。例如,如果要包含 `Book` 模型的 `get_absolute_url()` 方法返回的 URL,可以使用以下代码:
```python
books = Book.objects.all().values('id', 'title', 'author', 'price', 'get_absolute_url')
book_list = list(books)
```
这将返回一个包含 `get_absolute_url()` 方法返回的 URL 的字典列表。
阅读全文