跳转至

drf外键序列化

前言

在Django REST Framework(DRF)中,外键字段可以通过序列化器进行序列化和反序列化。

1、模型感受一下:

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

2、序列化

在上面的示例中,Book模型有一个外键字段指向Author模型。在BookSerializer中,我们可以使用source参数来指定外键字段对应的关联模型中的字段。例如,在这个例子中,我们使用source='author.name'将作者名字的字段映射到author_name字段。

在AuthorSerializer中,我们包含了一个嵌套的BookSerializer,以便序列化与该作者相关联的所有书籍。

from rest_framework import serializers
from myapp.models import Author, Book

class BookSerializer(serializers.ModelSerializer):
    author_name = serializers.CharField(source='author.name')

    class Meta:
        model = Book
        fields = ['id', 'title', 'author_name']

class AuthorSerializer(serializers.ModelSerializer):
    books = BookSerializer(many=True)

    class Meta:
        model = Author
        fields = ['id', 'name', 'books']



觉得有用的老铁们可以"微信"赞助一杯82年的雪碧呦。
txtddd
本文阅读量  次

评论