serializers.ModelSerializer 方法,排序怎么操作
时间: 2023-05-28 17:03:37 浏览: 164
在使用 `serializers.ModelSerializer` 进行序列化时,可以通过指定 `Meta` 类中的 `fields` 属性来控制序列化的字段,并通过 `Meta` 类中的 `ordering` 属性来指定排序规则。
例如,假设有如下模型类:
```python
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
price = models.DecimalField(max_digits=5, decimal_places=2)
published = models.DateField()
```
可以定义一个序列化器类来序列化该模型类:
```python
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['title', 'author', 'price', 'published']
ordering = ['-published']
```
在上面的例子中,`fields` 属性指定了要序列化的字段,`ordering` 属性指定了按照 `published` 字段倒序排序。使用该序列化器进行序列化时,可以按照以下方式进行:
```python
books = Book.objects.all()
serializer = BookSerializer(books, many=True)
data = serializer.data
```
在上面的代码中,我们获取所有的 `Book` 实例并使用 `BookSerializer` 进行序列化,最终得到序列化后的数据 `data`,其中按照 `published` 字段倒序排列。
阅读全文