django多对一和多对多的序列化

更新时间:2023-07-01 11:50:13 阅读: 评论:0

django多对⼀和多对多的序列化(以下⽅式只⽤于序列化,反序列化报错)
from django.db import models
# Create your models here.
class Book(models.Model):
title=models.CharField(max_length=32)
price=models.IntegerField()
pub_date=models.DateField()
publish=models.ForeignKey("Publish")
世风日下什么意思
authors=models.ManyToManyField("Author")
def__str__(lf):
return"app02 %s" % lf.title
class Meta:
app_label='app02'
class Publish(models.Model):
name=models.CharField(max_length=32)
email=models.EmailField()
def__str__(lf):
return"app02 %s" % lf.name
class Meta:
app_label = 'app02'
class Author(models.Model):
name=models.CharField(max_length=32)
age=models.IntegerField()
def__str__(lf):
return"app02 %s" %lf.name
class Meta:
app_label = 'app02'
2.多对⼀和多对多的序列的⽅式(⽅式⼀)
class AuthorSerializers(rializers.Serializer):
name=rializers.CharField()
age=rializers.IntegerField()
class Publishr(rializers.Serializer):
生命本来没有名字
name=rializers.CharField(max_length=32)
email=rializers.EmailField()
class BookSerializers(rializers.Serializer):
id=rializers.IntegerField()
诸葛恪得驴
title=rializers.CharField()
price=rializers.IntegerField()
pub_date=rializers.DateField()
合伙人合作协议书# 多对⼀
# source = "ail"
# 可以指定model中的函数,也可以指定字段
# 这种⽅式不使⽤于多对多,适⽤于⼀对⼀和多对⼀,⽽且这种⽅式只序列化⼀个值
# publish=rializers.CharField(source="publish.name",read_only=Fal)
环境会计信息披露# 多对⼀序列化多个值的写法
publish = Publishr()
# 多对多
authors=rializers.SerializerMethodField()
# 钩⼦函数序列化,必须是以get_开头的
def get_authors(lf,obj):
author=obj.authors.all()
auth=AuthorSerializers(author,many=True)
return auth.data
3.多对⼀和多对多的序列的⽅式(⽅式⼆)
class AuthorSer(rializers.ModelSerializer):
class Meta:
model=models.Author
企业文化的定义fields='__all__'
class Publishr(rializers.ModelSerializer):
class Meta:
model=models.Publish
未来的能源
fields='__all__'
class BookModelSerializers(rializers.ModelSerializer):    #多对⼀
publish = Publishr()
# 多对多
authors = rializers.SerializerMethodField()
# 钩⼦函数序列化,必须是以get_开头的
def get_authors(lf, obj):
author = obj.authors.all()
auth = AuthorSerializers(author, many=True) return auth.data
书法比赛活动方案class Meta:
model=models.Book
fields='__all__'

本文发布于:2023-07-01 11:50:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1063081.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:序列化   函数   活动   生命   合作   环境
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图