Django REST Framework的可写嵌套模型序列化

本文介绍了如何在Django REST Framework中使用DRF Writable Nested进行可写嵌套模型序列化的操作,包括支持的关系类型、安装步骤、用法示例以及解决更新时的验证问题。通过示例代码展示了如何创建和更新嵌套关系,并提到了UniqueFieldsMixin和NestedCreateMixin等关键概念。
摘要由CSDN通过智能技术生成

DRF可写的嵌套(DRF Writable Nested)
DRF Writable Nested 是Django REST框架的可写嵌套模型序列化器,它允许您使用相关嵌套数据创建/更新模型。
支持下列关系:
OneToOne (direct/reverse)-----一对一(直接的/反向)
ForeignKey (direct/reverse)-----一对多(直接的/反向)
ManyToMany (direct/reverse excluding m2m relations with through model)-----多对多(直接/反向不包括通过模型的m2m关系)
GenericRelation (this is always only reverse)-----一般关系(这总是反过来的)

Requirements(需求)
Python (2.7, 3.5, 3.6)
Django (1.9, 1.10, 1.11, 2.0)
djangorestframework (3.5+)

Installation(安装)

[Shell] 纯文本查看 复制代码

?

1

pip install drf-writable-nested



Usage(用法)
例如,对于以下模型结构:

[Python] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

from django.db import models

 

 

class Site(models.Model):

    url = models.CharField(max_length=100)

 

 

class User(models.Model):

    username = models.CharField(max_length=100)

 

 

class AccessKey(models.Model):

    key = models.CharField(max_length=100)

 

 

class Profile(models.Model):

    sites = models.ManyToManyField(Site)

    user = models.OneToOneField(User)

    access_key = models.ForeignKey(AccessKey, null=True)

 

 

class Avatar(models.Model):

    image = models.CharField(max_length=100)

    profile = models.ForeignKey(Profile, related_name='avatars')


我们应该创建以下序列化器列表:

[Python] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值